问题标签 [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 - 如何在 Delphi 中使用 GlobalContainer(Spring4D 框架)创建继承对象?
我在使用 Spring4D 框架的 GlobalContainer 创建从另一个继承的自定义类对象时遇到问题。
父类:
后代阶层:
我尝试创建 TVSPSeismicSection 对象:
接下来,我尝试访问(父类的)“组织”字段并获得访问冲突错误。
那么,问题是如何告诉父类使用 GlobalContainer 解析器来启动它的字段?也许通过 DelegateTo 方法,但如何?
我发现的一种方法是在后代类的构造函数中启动父字段,如下所示:
但这违反了依赖注入范式,因为我必须在后代类中包含其他类(IDirectoryObject)。
delphi - 在 Spring4D 中调用 GlobalContainer.Resolve 时如何将字符串值作为参数传递?
使用 Spring4D 时,如何在调用 GlobalContainer 时将字符串值作为参数传递。解析以便在已解析的类构造函数上使用此字符串值?
我想解析一个映射到 TWorker 的类 IWorker。TWorker 类在它的构造函数中依赖于 ITool 加上一个用于工作人员名称的字符串。
我猜答案在于可以作为参数提供给 GlobalContainer.Resolve 的 TValue 数组,但我不明白如何使用它。
我发现这篇关于在调用 GlobalContainer.Resolve 时使用TParameterOverride作为参数的帖子可能有效,但这个功能似乎在 Spring4D 的 1.1 版本中消失了。
我想在注册我的类型时避免调用 InjectConstructor。
我需要帮助的部分是
这是我的一个小项目
帮助将不胜感激。谢谢!
delphi - 在 Spring4D 中解决的最佳实践?
在 spring4d 演示中,ServiceLocator.GetService<MyType>('Name')
用于解析类型。但是为什么不使用GlobalContainer.Resolve<MyType>('Name')
呢?我认为这种方法没有任何优势......
delphi - spring4d 解析一个本地构造的类
假设,我有以下代码:
方法 ButtonEvent 由 delphi 表单按钮单击事件调用。
现在我的问题是:有没有更好的方法来实例化 TMyClass2 类?在我的情况下,无法注入 TMyClass1 类,TMyClass2 实例的生命周期仅在 ButtonEvent 内。对 ButtonEvent 的下一次调用应该使用不同的实例......
AFAIK,方法参数注入或局部变量注入在 Spring4D 中是不可能的,是吗?
delphi - 有地图功能吗?
我刚刚写了这个函数:
这大致相当于 Haskells map
(或fmap
,liftM
等)。
所以我想知道这样的东西在 Spring4D 中是否已经存在?
delphi - 如何创建不区分大小写的字符串列表?
我正在尝试创建一个不区分大小写的字符串列表。
该CreateList
方法让我传入一些重载:
TComparison<System.string>
IComparer<System.string>
我试着这样使用TStringComparer.OrdinalIgnoreCase
:
但是由于这个比较器没有实现上述任何不能编译的类/接口;我得到:
E2250 没有
TCollections.CreateList<System.string>
可以使用这些参数调用的重载版本
spring4d 框架中是否有其中一个可用的实现?
delphi - 如何将字段接口注入对象
我想将接口注入到对象中,但找不到属性[Inject]的问题
什么工作。
在构造函数 TMyButton.Create(AOwner: TComponent) 我想用字段注入替换 ServiceLocator 但我找不到如何做到这一点。
一些例子,但它不起作用。我看不出问题。
当我在运行时创建 TMyButton 时, TMyButton 中的 FStorage 为零。当我使用 FStorage:= ServiceLocator.GetService; 然后在构造函数中分配 FStorage。但我想使用注入而不是 ServiceLocator。如果这是可能的。
unit-testing - 如何使用 DUnit 模拟 Spring4D 事件
我正在努力用 DUnit 成功模拟 Spring4d 事件。
事实上,我更多的是嘲笑一个模拟返回一个事件的模拟......
这是基本结构。
TMyObject 有一个属性 EventContainer : IEventContainer
IEventContainer 有一个属性 Event : IMyEvent
我想嘲讽
我测试了我能想到的每一种可能性。我要么得到 AV,要么得到无效的演员表。我把源代码放在下面。如果有人可以帮助我完成这项工作,那就太好了!
list - Delphi Spring4D IList 内存溢出
我正在使用来自 Stefan Glienke 的优秀 Delphi 框架 Spring4D 的 IList。
我有一个列表 IList,并且在我的应用程序运行期间我多次重新填写此列表。所以,两三个小时后,我的列表出现内存溢出。
这就是我填充列表的方式:
Clear() 方法不会释放内存,所以每次我填写我的列表时,我的应用程序的 Windows 任务管理器 inc 内存使用情况:(
delphi - Delphi:使用接口调用父构造函数(Spring4D框架)
我面临从 Spring4D 框架容器解析的类型正确实例化对象的问题。
我有一堂课:
我使用 GlobalContainer 来实例化一个对象:
一切都很好,并且运行良好。
现在我想为 TSurvey 创建一个后代类:
问题是如何正确实例化 TFieldSurvey 类的对象?
如果我使用 Create(),那么我会得到一个异常:
我是否必须在 TFieldSurvey 构造函数中显式调用组织字段的构造函数,还是有另一种方法?例如,使用 GlobalContainer?
提前致谢。