问题标签 [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 - Parent 属性的构造函数注入与 setter 注入
我试图找出对一些遗留代码使用依赖注入的最佳方法,这将需要很长时间来重构并且必须逐步完成。大多数旧类使用“父”属性来确定各种事物,并且父属性通常通过构造函数参数传入,如下所示:
这是我们遗留代码库的典型特征。但是,当转向接口和构造函数注入时,Spring4D 框架在创建 Child 对象时不知道 Parent。所以它只会得到一个新的父母,而不是现有的父母。当然,我可以创建一个属性 getter/setter,但这将表明该类的“可选”属性实际上是一个强制属性。有关更多说明,请参见下面的代码:
也许有一些我不知道的方法可以用来使用 DI 框架设置父对象?
我希望这个问题很清楚我想要达到的目标。我很乐意在必要时提供更多描述/代码示例。
list - 如何从列表中删除所有重复项?
考虑这个测试应用程序:
如何实现该RemoveDuplicates
功能(nub
在 Haskell 中调用)?
delphi - Delphi分布式构建失败
我创建了一个小项目 [0] 来在受控环境中重现错误。事实是,我正在使用 jenkins 构建我的项目,一个很大的项目,我想做一些并行构建。让我以图形方式进行
这是我在 [0] 上创建的组织,我在 spring 容器上注册了一个类TMyUnit ( MyBasicPackage ) 以进行测试。我构建它并生成它的 .dcu、.bpl 等。第二阶段我构建了需要MyBasicPackage的MyPackageTester。最后,我构建了需要MyPackageTester的应用程序。到现在为止还挺好。
当我尝试在PC-00上构建MyBasicPackage时,获取工件并尝试在PC-06上构建MyPackageTester(相同的架构、相同的操作系统、相同的 IDE、相同的 spring4d 版本),然后出现了一个很好的错误:
所以,我在两台机器( PC-00和PC-06 )上更新我的 spring4d并构建它们。运行...并出现同样的错误。检查库路径选项(C:\Program Files (x86)\Embarcadero\Studio\14.0\Componentes\spring4d\Library\DelphiXE6\Win32\Debug),删除 dcu 文件并在两台机器上再次构建它们,同样的错误。将 dcu 文件从PC-00复制到PC-06以避免任何类型的系统配置并出现相同的错误。
可能我正在尝试做一些迄今为止不可能的事情。我用谷歌搜索了几天没有运气。
有任何想法吗?
请随时 fork 或 pull request 示例;)
问候
delphi - 如何安装 Spring4D
我已经下载了 Delphi Spring Framework 的最新版本。按照自述文件中的指示,我运行 Build.exe 并选择了我的两个版本的 Delphi(XE5 和西雅图)。在 Delphi 安装中,我都看不到已安装软件包或修改了我的库搜索路径。我缺少什么或者我必须做些什么来安装和使用它?
在此先感谢您的帮助。
delphi - Spring4d 事件驱动架构或如何检索给定接口的所有实例
我检查了 Spring4d 库中有关事件驱动架构的示例。
据我了解,当一个事件发布时,ServiceLocator
将实例化所有实现该IEventHandler<TEventClass>
接口的类并要求这些处理程序处理该事件。
但是,是否有推荐的方法只要求已经实例化的服务来处理事件。
假设我有任意数量的Controllers
实例化。其中一些可能是多次实例化的同一个类。其中一些可能是独一无二的。
我希望这些实例化Controllers
来监听TUserAdded
事件。这些Controllers
实现了IEventHandler<TUserAdded>
接口。我不希望未实例化Controllers
的人收听该事件。
在某种程度上,我想获取实现该IEventHandler<TUserAdded>
事件的所有实例的列表。
此外,在理想情况下,如果 aController
注册为Singleton
我想实例化TMySingletonController
如果它还没有实例化,那么,让它处理事件。
Spring4d 中是否有内置方法来获取给定接口的所有实例的列表?
delphi - 弹簧持久性的模型生成器
有谁知道棉花糖(弹簧持久性)是否有现有的模型生成器。手动编写所有类和外键等并不是那么方便。
先感谢您。
以便生成器为数据库中的表生成 pas 文件。
delphi - Delphi,如何避免application.CreateForm?
我正在使用Spring4d 框架 进行依赖注入和其他事情。
在应用程序入口点,我必须创建应用程序“主”表单。虽然,我不知道除了
创建这个。
是否可以使用 Spring4d 依赖注入创建主窗体?像这样:
然后将其设置为打开应用程序时将显示的表单?
delphi - Spring4d:如何“强制”容器相信一个类实现了一个接口
我正在使用 RemObjects DataAbstract 和 Spring4d。RemObjects 生成一个SchemaServer_Intf.pas
文件,该文件包含其模式中存在的每种表的接口。它允许“强类型”数据集,允许使用
这是 DataAbstract 生成的接口之一的快照
不过,有一个问题。如果您像这样投射数据表:
您将收到“不支持接口错误”
但是,一旦你这样做:
你可以放心地写
而且您不会收到任何错误。
所以,对于 Spring4d,我想在我的注册单元中写这个:
但是,Spring4d 抛出(有原因)错误:
有没有办法覆盖这个检查?
delphi - Spring4d:具有所有者的自动工厂:TComponent 参数?
使用Spring4d,您可以像这样注册自定义工厂
以这种方式,我相信对于继承自的每个依赖项,TComponent
想要传递所有者的人要么
或者一个也可以做
虽然,这很容易出错/添加代码只是为了传递所有者。是否有一种内置方法可以获取将 TComponent 作为参数的工厂,而无需事先在容器中注册它?
因为我经常会使用
不注册TFunc<TMyDep>
依赖项,而只注册TMyDep
类型。
有可能通过类似的东西
无需在容器中注册?
delphi - Delphi:相同类型的不同PTypeInfo
我对 Delphi 中的 PTypeInfo(以及一般的 TypeInfo)有点困惑——确切地说是 Delphi 10 Seattle。
我遇到了以下问题:
我们有一个 ORM 框架(基于 Spring4D)。现在我想扩展它的映射能力:Nullable integer column to a Nullable field in model. 该列包含 NULL、0 或 1。映射函数很简单:
- NULL->null (空的 Nullable)
- 0->假
- 1-> 真
但我相信我正在研究 ORM 并不重要。问题的核心是使用 TValue 传递值,并且在通过 RTTI 将最终值分配给对象的字段之前进行了一些强制转换操作。在那里我可以看到我能够轻松重现的问题:
映射引擎为字段提供 PTypeInfo 指针。例子:
在代码中的某处:
现在如果我写:
结果是假的。我的终极问题是为什么?我确信类型是平等的。'Nullable<System.Boolean>'
他们都以它的名字返回。