根据Spring.NET框架附带的帮助文件,您可以使用'idref'标记和'local'属性注入本地文件中定义的依赖项。
我一直试图这样做但没有成功,并希望有人有经验来帮助我。
下面我有一个来自配置的片段,我将其作为构造函数参数传递,但我也尝试将其设置为属性。这两种方法似乎都会产生同样的错误。
<object id="theTargetObject" type="TestClassLibrary.TargetObject, TestClassLibrary"/>
<object id="theClientObject" type="TestClassLibrary.ClientObject, TestClassLibrary">
<constructor-arg name="myClass">
<idref local="theTargetObject"/>
</constructor-arg>
</object>
创建上下文'spring.root'时出错:创建在'file [C:\ Test \ TestApp \ bin \ Debug \ my.config.xml]中定义名称为'theClientObject'的对象时出错:通过构造函数参数表示不满意的依赖关系索引0的类型为[TestClassLibrary.TargetObject]:无法将构造函数参数值[theTargetObject]转换为必需的类型[TestClassLibrary.TargetObject]:无法将类型[System.String]的属性值转换为属性所需的类型[TestClassLibrary.TargetObject] ''。
答案 0 :(得分:2)
我猜gef是在正确的方式,但在粘贴片段时意外混淆了。你正在寻找<ref> element:
<object id="theTargetObject" type="TestClassLibrary.TargetObject, TestClassLibrary"/>
<object id="theClientObject" type="TestClassLibrary.ClientObject, TestClassLibrary">
<property name="myClass">
<ref local="theTargetObject"/>
</property>
这个简写符号是:
<object id="theClientObject" type="TestClassLibrary.ClientObject, TestClassLibrary">
<property name="myClass ref="theTargetObject"/>
HTH, 埃里希
答案 1 :(得分:1)