1

根据 Spring.NET 框架附带的帮助文件,您可以通过使用“idref”标签和“本地”属性来注入在本地文件中定义的依赖关系。

我一直在尝试这样做,但没有成功,希望有人有经验来帮助我。

下面我有一个来自配置的片段,我将它作为构造函数参数传递,但我也尝试将它设置为属性。两种方法似乎都会产生相同的错误。

<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”时出错:在“文件 [C:\Test\TestApp\bin\Debug\my.config.xml]”中定义名称为“theClientObject”的对象创建时出错:通过索引为 0 的构造函数参数表达的依赖关系不满足[TestClassLibrary.TargetObject] 类型:无法将构造函数参数值 [theTargetObject] 转换为所需类型 [TestClassLibrary.TargetObject]:无法将 [System.String] 类型的属性值转换为属性“”的所需类型 [TestClassLibrary.TargetObject]。

4

2 回答 2

2

我猜 gef 是正确的,但是在粘贴代码片段时不小心把它弄混了。你正在寻找<ref> 元素

<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,埃里希

于 2009-01-04T15:20:03.750 回答
1

请查看帖子http://forum.springsource.org/showthread.php?t=14211

于 2009-08-14T07:24:29.610 回答