问题标签 [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 回答
582 浏览

delphi - 如何在 Delphi 中使用 GlobalContainer(Spring4D 框架)创建继承对象?

我在使用 Spring4D 框架的 GlobalContainer 创建从另一个继承的自定义类对象时遇到问题。

父类:

后代阶层:

我尝试创建 TVSPSeismicSection 对象:

接下来,我尝试访问(父类的)“组织”字段并获得访问冲突错误。

那么,问题是如何告诉父类使用 GlobalContainer 解析器来启动它的字段?也许通过 DelegateTo 方法,但如何?

我发现的一种方法是在后代类的构造函数中启动父字段,如下所示:

但这违反了依赖注入范式,因为我必须在后代类中包含其他类(IDirectoryObject)。

0 投票
3 回答
1010 浏览

delphi - 在 Spring4D 中调用 GlobalContainer.Resolve 时如何将字符串值作为参数传递?

使用 Spring4D 时,如何在调用 GlobalContainer 时将字符串值作为参数传递。解析以便在已解析的类构造函数上使用此字符串值?

我想解析一个映射到 TWorker 的类 IWorker。TWorker 类在它的构造函数中依赖于 ITool 加上一个用于工作人员名称的字符串。

我猜答案在于可以作为参数提供给 GlobalContainer.Resolve 的 TValue 数组,但我不明白如何使用它。

我发现这篇关于在调用 GlobalContainer.Resolve 时使用TParameterOverride作为参数的帖子可能有效,但这个功能似乎在 Spring4D 的 1.1 版本中消失了。

我想在注册我的类型时避免调用 InjectConstructor。

我需要帮助的部分是

这是我的一个小项目

帮助将不胜感激。谢谢!

0 投票
1 回答
1113 浏览

delphi - 在 Spring4D 中解决的最佳实践?

在 spring4d 演示中,ServiceLocator.GetService<MyType>('Name')用于解析类型。但是为什么不使用GlobalContainer.Resolve<MyType>('Name')呢?我认为这种方法没有任何优势......

0 投票
1 回答
631 浏览

delphi - spring4d 解析一个本地构造的类

假设,我有以下代码:

方法 ButtonEvent 由 delphi 表单按钮单击事件调用。

现在我的问题是:有没有更好的方法来实例化 TMyClass2 类?在我的情况下,无法注入 TMyClass1 类,TMyClass2 实例的生命周期仅在 ButtonEvent 内。对 ButtonEvent 的下一次调用应该使用不同的实例......

AFAIK,方法参数注入或局部变量注入在 Spring4D 中是不可能的,是吗?

0 投票
1 回答
1965 浏览

delphi - 有地图功能吗?

我刚刚写了这个函数:

这大致相当于 Haskells map(或fmap,liftM等)。

所以我想知道这样的东西在 Spring4D 中是否已经存在?

0 投票
2 回答
601 浏览

delphi - 如何创建不区分大小写的字符串列表?

我正在尝试创建一个不区分大小写的字符串列表。

CreateList方法让我传入一些重载:

  • TComparison<System.string>
  • IComparer<System.string>

我试着这样使用TStringComparer.OrdinalIgnoreCase

但是由于这个比较器没有实现上述任何不能编译的类/接口;我得到:

E2250 没有TCollections.CreateList<System.string>可以使用这些参数调用的重载版本

spring4d 框架中是否有其中一个可用的实现?

0 投票
1 回答
662 浏览

delphi - 如何将字段接口注入对象

我想将接口注入到对象中,但找不到属性[Inject]的问题

什么工作。




在构造函数 TMyButton.Create(AOwner: TComponent) 我想用字段注入替换 ServiceLocator 但我找不到如何做到这一点。

一些例子,但它不起作用。我看不出问题。


当我在运行时创建 TMyButton 时, TMyButton 中的 FStorage 为零。当我使用 FStorage:= ServiceLocator.GetService; 然后在构造函数中分配 FStorage。但我想使用注入而不是 ServiceLocator。如果这是可能的。

0 投票
1 回答
516 浏览

unit-testing - 如何使用 DUnit 模拟 Spring4D 事件

我正在努力用 DUnit 成功模拟 Spring4d 事件。

事实上,我更多的是嘲笑一个模拟返回一个事件的模拟......

这是基本结构。

TMyObject 有一个属性 EventContainer : IEventContainer

IEventContainer 有一个属性 Event : IMyEvent

我想嘲讽

我测试了我能想到的每一种可能性。我要么得到 AV,要么得到无效的演员表。我把源代码放在下面。如果有人可以帮助我完成这项工作,那就太好了!

0 投票
1 回答
494 浏览

list - Delphi Spring4D IList 内存溢出

我正在使用来自 Stefan Glienke 的优秀 Delphi 框架 Spring4D 的 IList。

我有一个列表 IList,并且在我的应用程序运行期间我多次重新填写此列表。所以,两三个小时后,我的列表出现内存溢出。

这就是我填充列表的方式:

Clear() 方法不会释放内存,所以每次我填写我的列表时,我的应用程序的 Windows 任务管理器 inc 内存使用情况:(

0 投票
2 回答
524 浏览

delphi - Delphi:使用接口调用父构造函数(Spring4D框架)

我面临从 Spring4D 框架容器解析的类型正确实例化对象的问题。

我有一堂课:

我使用 GlobalContainer 来实例化一个对象:

一切都很好,并且运行良好。

现在我想为 TSurvey 创建一个后代类:

问题是如何正确实例化 TFieldSurvey 类的对象?

如果我使用 Create(),那么我会得到一个异常:

我是否必须在 TFieldSurvey 构造函数中显式调用组织字段的构造函数,还是有另一种方法?例如,使用 GlobalContainer?

提前致谢。