Проблема Spring.NET с тегом ‹idref› в конфигурации

Согласно файлу справки, который поставляется с платформой 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': Ошибка создания объекта с именем 'theClientObject', определенным в 'файле [C: \ Test \ TestApp \ bin \ Debug \ my.config.xml]': неудовлетворенная зависимость, выраженная через аргумент конструктора с индексом 0 типа [TestClassLibrary.TargetObject]: не удалось преобразовать значение аргумента конструктора [theTargetObject] в требуемый тип [TestClassLibrary.TargetObject]: невозможно преобразовать значение свойства типа [System.String] в требуемый тип [TestClassLibrary.TargetObject] для свойства ».


person Community    schedule 06.11.2008    source источник


Ответы (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>

the shorthand notation for this is:

<object id="theClientObject" type="TestClassLibrary.ClientObject, TestClassLibrary">
     <property name="myClass ref="theTargetObject"/>

hth, Эрих

person Erich Eichinger    schedule 04.01.2009
comment
Ой, хорошо замечено - мне следовало использовать это - springframework.net/docs/1.2.0-RC1/reference/html/ :) - person gef; 04.01.2009

Просмотрите сообщение http://forum.springsource.org/showthread.php?t=14211

person intangible02    schedule 14.08.2009