Spring.NET
От: Polevi  
Дата: 23.07.08 05:40
Оценка:
День добрый

не получается с помощью 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.

это в принципе невозможно или .. ?
Re: Spring.NET
От: Ziaw Россия  
Дата: 23.07.08 06:38
Оценка:
Здравствуйте, 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>>
Re[2]: Spring.NET
От: Polevi  
Дата: 23.07.08 06:51
Оценка:
Спасибо
У меня есть класс-контейнер, мне хотелось чтобы некоторые его св-ва зависели от внедренного объекта. Например св-ва контейнера Caption зависело от того какой бизнес объект он отображает. (если Document — то номер, а если Customer — ИНН)
Я хотел для этого использовать expression.. если это не работает получается что мне на каждый объект придется свой контейнер делать (и переопределять в каждом Caption) ?
Re[3]: Spring.NET
От: Ziaw Россия  
Дата: 23.07.08 06:58
Оценка:
Здравствуйте, Polevi, Вы писали:

P>Спасибо

P>У меня есть класс-контейнер, мне хотелось чтобы некоторые его св-ва зависели от внедренного объекта. Например св-ва контейнера Caption зависело от того какой бизнес объект он отображает. (если Document — то номер, а если Customer — ИНН)
P>Я хотел для этого использовать expression.. если это не работает получается что мне на каждый объект придется свой контейнер делать (и переопределять в каждом Caption) ?

Инжектите expression в виде строки и вычисляйте его в рантайме.
или
Сделайте у всех объектов единый интерфейс IHasCaption
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
Re[4]: Spring.NET
От: Polevi  
Дата: 23.07.08 07:00
Оценка:
Спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.