问题标签 [spring4d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - 是否可以在 Spring4D 中多次注册同一个类/接口?
我目前正在玩 Spring4D 框架,并认为它很酷。我正在努力实现以下目标
TPerson/IPerson 具有明显的定义。但不管我是否尝试
或者
我总是得到鲍勃,这是可能的还是我做错了什么?
delphi - Delphi XE2中不满足的依赖异常
我有以下界面:
及其相关的模拟类,其中函数/过程不做任何事情:
当我尝试使用以下代码运行测试时,出现错误
我仔细检查过,ICodec 中的所有过程/功能都与 TMockCodec1 中的相同。
我哪里错了?
[更新]
我听从了大卫的建议,我想我已经找到了这个错误。我的 .dpr 如下:
单元 uMockTPWDDBManager 有如下初始化:
和单元 uTCodec1 具有以下初始化:
当我从 .dpr 中删除 uTCodec1 时,错误消息消失了。
我认为同一个接口的两个初始化不能在同一个.dpr中共存。
我对么 ?
[SSCCE]
不幸的是,我只能将单元数减少到 3 个。
以下是.dpr
这是第一个单元:
这是第二个:
我可以编译源代码,但是当我运行测试时,我收到错误消息 EUnsatisfiedDependencyException 并显示消息“服务“ICodec”的不满足依赖项
如果我删除类 tcodec1 并删除,GlobalContainer.RegisterComponent<tcodec1>.Implements<ICodec>;
则不再有错误消息。
是不是因为你不能在同一个项目中注册多个类并引用同一个接口?
delphi - 为 Mock 提供数据以进行单元测试
我正在执行单元测试的类滚动数据库表的每条记录,并将字段中的值与前一个值相加。以下是简化为骨骼的类:
FDB 指的是名为 IIDBTable 的 DB 模拟接口。
以下是依赖注入的数据库模拟:
问题是我不知道如何为模拟提供数据以进行测试。当然,我可以添加一个额外的过程,比如 AddValues(aAmount:integer),它可以完成这项工作,但在这种情况下,我最终也会在生产中使用这个额外的过程,我不需要它。
对此的最佳做法是什么?
我使用 Spring for Delphi 框架
delphi - 弹簧 4D。谁在使用这个框架,你的经验是什么?
我已经用 Delphi 编码一年了。然而,我确实有更多的 .NET 经验。我正在阅读 Nick Hodges的《Coding In Delphi》一书,他在其中介绍并认可了Spring 4 Delphi 框架。
我立即对基于 IEnumerable 的泛型集合感到兴奋。
然而,我的同事对使用该框架持保留态度。这主要是由于缺乏文档以及 Delphi 在这个继承级别上关于泛型的健壮性/稳定性的一些不安全性。
因此问题。你的经验是什么?任何问题?您是否在生产中使用该框架?
我们目前仍在使用 XE2,但预计将在未来几个月内切换到 XE4。
谢谢!
delphi - Delphi Spring框架注册泛型类型
使用 Delphi Spring 框架,是否可以向 GlobalContainter 注册一个泛型类型?我正在尝试做这样的事情:
我不确定我正在尝试做的事情是否可行,或者是否有更好/替代的方法来做到这一点?我正在使用带有最新 Spring4D 框架的 Delphi 2010。(我也有 Delphi XE5,但由于 3rd 方库,项目本身仍然是 2010 年)。任何想法或建议将不胜感激。
delphi - Delphi 接口和 IList(或 TObjectList)
我正在尝试实现 Spring 4 Delphi,并且只对接口而不是类进行编程。但是,当您想使用 TObjectList 时,这似乎是不可能的。
考虑以下代码:
我知道我可以在上面的示例中将 IMyObjChild 更改为 TMyObjChild,但是如果我需要在另一个单元或表单中进行更改,那么我该怎么做呢?
一旦你需要一个 TObjectList,试图只对接口进行编程似乎太难或不可能了。
Grrr ...有什么想法或帮助吗?
delphi - 如何从 Spring4d 中的 ServiceLocator 获取子接口实例?
我是 Spring4D 框架的新手,请帮助。
我有下一个类和接口:
然后我注册一个组件:
然后我尝试在 ServiceLocator 的帮助下创建一个对象:
作为执行的结果,我有一个例外:
为了避免例外,我这样做:
然后一切正常。
重点是在这种情况下我必须使用它 TContainer 作为 TCommand 和继承类的存储库。所以我必须首先使用 ServiceLocator 。
我应该怎么做才能避免异常并在 TContainer 中使用 ICommand 而不是 IvecadCommand?
谢谢。将愉快地提供更多细节。
delphi - Delphi 模拟可空类型
使用 Spring 框架中的 Nullable 类型设置 Delphi DSharp 模拟的最佳方法是什么?我尝试了各种方法,我知道我可能遗漏了一些非常基本的东西,但我就是不知道如何让以下代码工作:
有什么想法或建议会很棒吗?我正在使用德尔福 XE5。谢谢。瑞克。
delphi - 如何在 Spring4D GlobalContainer 中初始化主应用程序表单?
因此,例如,我有一个主表单并想将一个记录器实例作为私有字段注入。
我注册了记录器
我的主表单中有一个私有字段
我想要的只是这样做:
在我的 DPR 文件中,我有典型的 delphi 方法来创建主表单:
我应该在表单创建方式上进行哪些更改以正确注入私有字段?
顺便说一句,如果我用 GlobalContainer.Resolve 解析 Form.OnCreate 中的字段,它工作正常。但我想避免在我的表单中使用 GlobalContainer 变量。
delphi - 如何在 Spring4d 中使用 THasAttributeFilter
我想在我正在编写的类中查询一些属性(又名注释)。
我可以用复杂的方式来做,但我想改用 Spring4D。
它有一个名为的单元Reflection
,看起来它有我需要的东西,但我不知道如何使用它。
我在网上看过,但没有关于如何使用本机的示例。
我发现:
看起来像这样:
太好了,所以我创建了一个像这样的过滤器:
我可以像这样创建一个 HasAttributeFilter:
我如何使用 Spring4D 来测试属性,而不必编写经典 RTTI 写作(例如根据 Nick Hodges 的书)所需的无数行?