可以注册一个类,该类具有从创建点传递的参数?delphi - 如何将参数从实例化器传递给spring4d依赖注入框架中的构造函数?
我知道这是可以做到这样的事:
GlobalContainer.RegisterType<TUserProcessor>.Implements<IUserUpgrader>.
AsTransient.DelegateTo(
function: TUserProcessor
begin
Result := TUserProcessor.Create(GetCurrentUser);
end
);
但这些参数绑定到未在对象中获取的intantiated其中容器被登记的执行上下文和。
这样的事情是可能的例如?
GlobalContainer.Resolve<IMathService>([FCurrentUser]);
我知道有些peoble主张有非常简单的构造,但也有当一个构造函数的参数看起来显然是要走的路时间:
构造的对象需要对象参数工作,所以参考必须得到满足。该参数也使得这个约束更加明显地看着这个类。
如果您尝试在不首先进行赋值的情况下使用对象,则可以在方法或属性中分配引用,并在其他方法中引发和异常。我不喜欢编写这种类型的代码,它只是一个简单的浪费时间,只需使用构造函数参数并在那里检查。更少的代码,更好的海事组织。
此外,对象被传递给使用容器构造新对象的对象(例如一个Transaction对象)并且具有某种状态(它不是我可以通过容器获得的新对象)。
我不知道'TContainer.Resolve'的接受在Spring4D数组参数的重载的。我想念什么? –
menjaraz
2012-03-31 05:10:42
@menjaraz这是只是和想法,它可以如何实现(肯定它可以与RTTI donde) – 2012-03-31 22:56:42
好吧,这听起来像一个功能请求。为什么不把它发布到[spring4d Google Group](http://groups.google.com/group/spring4d)? – menjaraz 2012-04-01 06:17:29