问题标签 [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.

0 投票
1 回答
328 浏览

delphi - 是否可以在 Spring4D 中多次注册同一个类/接口?

我目前正在玩 Spring4D 框架,并认为它很酷。我正在努力实现以下目标

TPerson/IPerson 具有明显的定义。但不管我是否尝试

或者

我总是得到鲍勃,这是可能的还是我做错了什么?

0 投票
1 回答
509 浏览

delphi - Delphi XE2中不满足的依赖异常

我有以下界面:

及其相关的模拟类,其中函数/过程不做任何事情:

当我尝试使用以下代码运行测试时,出现错误

我仔细检查过,ICodec 中的所有过程/功能都与 TMockCodec1 中的相同。

我哪里错了?

[更新]

我听从了大卫的建议,我想我已经找到了这个错误。我的 .dpr 如下:

单元 uMockTPWDDBManager 有如下初始化:

和单元 uTCodec1 具有以下初始化:

当我从 .dpr 中删除 uTCodec1 时,错误消息消失了。

我认为同一个接口的两个初始化不能在同一个.dpr中共存。

我对么 ?

[SSCCE]

不幸的是,我只能将单元数减少到 3 个。

以下是.dpr

这是第一个单元:

这是第二个:

我可以编译源代码,但是当我运行测试时,我收到错误消息 EUnsatisfiedDependencyException 并显示消息“服务“ICodec”的不满足依赖项

如果我删除类 tcodec1 并删除,GlobalContainer.RegisterComponent<tcodec1>.Implements<ICodec>; 则不再有错误消息。

是不是因为你不能在同一个项目中注册多个类并引用同一个接口?

0 投票
2 回答
991 浏览

delphi - 为 Mock 提供数据以进行单元测试

我正在执行单元测试的类滚动数据库表的每条记录,并将字段中的值与前一个值相加。以下是简化为骨骼的类:

FDB 指的是名为 IIDBTable 的 DB 模拟接口。

以下是依赖注入的数据库模拟:

问题是我不知道如何为模拟提供数据以进行测试。当然,我可以添加一个额外的过程,比如 AddValues(aAmount:integer),它可以完成这项工作,但在这种情况下,我最终也会在生产中使用这个额外的过程,我不需要它。

对此的最佳做法是什么?

我使用 Spring for Delphi 框架

0 投票
0 回答
6912 浏览

delphi - 弹簧 4D。谁在使用这个框架,你的经验是什么?

我已经用 Delphi 编码一年了。然而,我确实有更多的 .NET 经验。我正在阅读 Nick Hodges的《Coding In Delphi》一书,他在其中介绍并认可了Spring 4 Delphi 框架

我立即对基于 IEnumerable 的泛型集合感到兴奋。

然而,我的同事对使用该框架持保留态度。这主要是由于缺乏文档以及 Delphi 在这个继承级别上关于泛型的健壮性/稳定性的一些不安全性。

因此问题。你的经验是什么?任何问题?您是否在生产中使用该框架?

我们目前仍在使用 XE2,但预计将在未来几个月内切换到 XE4。

谢谢!

0 投票
1 回答
862 浏览

delphi - Delphi Spring框架注册泛型类型

使用 Delphi Spring 框架,是否可以向 GlobalContainter 注册一个泛型类型?我正在尝试做这样的事情:

我不确定我正在尝试做的事情是否可行,或者是否有更好/替代的方法来做到这一点?我正在使用带有最新 Spring4D 框架的 Delphi 2010。(我也有 Delphi XE5,但由于 3rd 方库,项目本身仍然是 2010 年)。任何想法或建议将不胜感激。

0 投票
1 回答
5175 浏览

delphi - Delphi 接口和 IList(或 TObjectList)

我正在尝试实现 Spring 4 Delphi,并且只对接口而不是类进行编程。但是,当您想使用 TObjectList 时,这似乎是不可能的。

考虑以下代码:

我知道我可以在上面的示例中将 IMyObjChild 更改为 TMyObjChild,但是如果我需要在另一个单元或表单中进行更改,那么我该怎么做呢?

一旦你需要一个 TObjectList,试图只对接口进行编程似乎太难或不可能了。

Grrr ...有什么想法或帮助吗?

0 投票
1 回答
495 浏览

delphi - 如何从 Spring4d 中的 ServiceLocator 获取子接口实例?

我是 Spring4D 框架的新手,请帮助。

我有下一个类和接口:

然后我注册一个组件:

然后我尝试在 ServiceLocator 的帮助下创建一个对象:

作为执行的结果,我有一个例外:

为了避免例外,我这样做:

然后一切正常。

重点是在这种情况下我必须使用它 TContainer 作为 TCommand 和继承类的存储库。所以我必须首先使用 ServiceLocator 。

我应该怎么做才能避免异常并在 TContainer 中使用 ICommand 而不是 IvecadCommand?

谢谢。将愉快地提供更多细节。

0 投票
2 回答
722 浏览

delphi - Delphi 模拟可空类型

使用 Spring 框架中的 Nullable 类型设置 Delphi DSharp 模拟的最佳方法是什么?我尝试了各种方法,我知道我可能遗漏了一些非常基本的东西,但我就是不知道如何让以下代码工作:

有什么想法或建议会很棒吗?我正在使用德尔福 XE5。谢谢。瑞克。

0 投票
1 回答
1859 浏览

delphi - 如何在 Spring4D GlobalContainer 中初始化主应用程序表单?

因此,例如,我有一个主表单并想将一个记录器实例作为私有字段注入。

我注册了记录器

我的主表单中有一个私有字段

我想要的只是这样做:

在我的 DPR 文件中,我有典型的 delphi 方法来创建主表单:

我应该在表单创建方式上进行哪些更改以正确注入私有字段?

顺便说一句,如果我用 GlobalContainer.Resolve 解析 Form.OnCreate 中的字段,它工作正常。但我想避免在我的表单中使用 GlobalContainer 变量。

0 投票
1 回答
302 浏览

delphi - 如何在 Spring4d 中使用 THasAttributeFilter

我想在我正在编写的类中查询一些属性(又名注释)。

我可以用复杂的方式来做,但我想改用 Spring4D。

它有一个名为的单元Reflection,看起来它有我需要的东西,但我不知道如何使用它。

我在网上看过,但没有关于如何使用本机的示例。

我发现:

看起来像这样:

太好了,所以我创建了一个像这样的过滤器:

我可以像这样创建一个 HasAttributeFilter:

我如何使用 Spring4D 来测试属性,而不必编写经典 RTTI 写作(例如根据 Nick Hodges 的书)所需的无数行?