是否可以像动态创建委托一样
arg => { return something; }
or arg => someting;
使用内置的 DelegateFactoryObject 和 Spring.Net 提供的 Spring 表达式?
我想创建没有编码的工厂。spring文档中的abstract sample需要一个抽象工厂,通过config动态实现工厂方法。我想通过 Spring.Net 定义一个委托和结果。
我已经使用了如下结构。
<object type="Spring.Objects.Factory.Config.DelegateFactoryObject">
<property name="DelegateType" value="System.Func<string,bool>" />
<property name="TargetObject" value="aString" />
<property name="MethodName" value="Equals" />
</object>
<object type="Spring.Objects.Factory.Config.DelegateFactoryObject">
<property name="DelegateType" value="System.Func<string,My.Interface>" />
<property name="TargetObject">
<object id="result" type="My.DelegateContainer<string,My.Interface>">
<constructor-arg name="objectToReturn" ref="theObjectToReturn" />
</object>
</property>
<property name="MethodName" value="Evaluate" />
</object>
(字符串为输入,My.Interface实现类型为输出,通过ObjectToReturn)
...但我无法找到如何使用表达式来定义通过 xml-config 返回对象的函数的解决方案。我想用一个简单的配置定义的工厂来替换这个例子中的 DelegateContainer,返回 theObjectToReturn。
这个问题与这个问题有关:How to injection Predicate and Func in Spring.net,您可以在那里找到有关该问题的更多信息。