gpt4 book ai didi

delphi - Delphi 是否有基于属性注入(inject)的依赖注入(inject)框架?

转载 作者:行者123 更新时间:2023-12-03 14:57:51 25 4
gpt4 key购买 nike

我希望能够以这种方式在 Delphi 中进行编码,只需注释一个字段即可:

type
TMyClass = class
private
[Inject]
Factory: ISomeFactory;
...
end;

或者通过指定 setter

type
TMyClass = class
private
FFactory: ISomeFactory;

[Inject]
procedure SetFactory(const AFactory: ISomeFactory);
...
public
property Factory: ISomeFactory read FFactory write SetFactory;
end;
<小时/>

背景:我正在将旧代码转移到面向服务的架构,并发现引用服务层总是会导致类似的构造

DataModule1.ServiceLayerInstance1.SubSystemN.InvokeSomething(Params, ...);

可能会更短,例如

type
Form1 = class(TForm1)
private
[Inject]
SubsystemN: ISubsystemN;
...
end;
...
SubsystemN.InvokeSomething(Params, ...);

最佳答案

是的,有。 Delphi Spring 框架

http://www.spring4d.com/

正是这样做的。它有一个[Inject]属性。

需要注意的是——要使用它,您需要在定义该属性的代码中包含 Spring 单元。否则,编译器将忽略该属性。

关于delphi - Delphi 是否有基于属性注入(inject)的依赖注入(inject)框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10755391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com