День добрый
не получается с помощью expression присвоить значение поля внедренного объекта
<objects xmlns="
http://www.springframework.net">
<object id="Singleton" type="SpringTest.Singleton, Spring" singleton="true">
<property name="Name" value="bla bla"/>
</object>
<object id="Test" type="SpringTest.Test, Spring" singleton="false">
<property name="S" ref="Singleton"/>
<property name="Name" expression="S.Name"/>
</object>
</objects>
ошибка: Initialization of object failed : Cannot initialize property or field node 'S' because the specified context is null.
это в принципе невозможно или .. ?
Здравствуйте, Polevi, Вы писали:
P>ошибка: Initialization of object failed : Cannot initialize property or field node 'S' because the specified context is null.
P>это в принципе невозможно или .. ?
Это в принципе не нужно делать. Такое может понадобитсья в двух вариантах.
1. Test.Name всегда равно Singleton.Name
тогда лучше сделать его как
public string Name
{
get { return S.Name; }
}
2. Test.Name и Singleton.Name две разные сущности которые совпали на данный момент
в этом случае можно воспользоваться конфигурационными переменными и задать их примерно так:
см
здесь
<object id="Singleton" type="SpringTest.Singleton, Spring" singleton="true">
<property name="Name" value="${name}"/>
</object>
<object id="Test" type="SpringTest.Test, Spring" singleton="false">
<property name="S" ref="Singleton"/>
<property name="Name" value="${name}"/>
</object>
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
Здравствуйте, Polevi, Вы писали:
P>Спасибо
P>У меня есть класс-контейнер, мне хотелось чтобы некоторые его св-ва зависели от внедренного объекта. Например св-ва контейнера Caption зависело от того какой бизнес объект он отображает. (если Document — то номер, а если Customer — ИНН)
P>Я хотел для этого использовать expression.. если это не работает получается что мне на каждый объект придется свой контейнер делать (и переопределять в каждом Caption) ?
Инжектите expression в виде строки и вычисляйте его в рантайме.
или
Сделайте у всех объектов единый интерфейс IHasCaption
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>