Spring.net — PropertyRetrievingFactoryObject — свойство имеет значение null

Пытаясь решить этот вопрос, я принимаю посмотрите, как работает наша конфигурация spring.net.

Основная проблема исходит из этого фрагмента:

<object name="someObject" singleton="false" type="SomeType.someObject, SomeAssembly">
  <constructor-arg name="authSession">
    <object type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core">
      <property name="TargetObject" ref="AuthSessionManager" />
      <property name="TargetProperty" value="CurrentAuthSession" />
    </object>
  </constructor-arg>
</object>

В случае, когда пользователь не вошел в систему, AuthSessionManager.CurrentAuthSession будет нулевым. В этом случае Spring.NET выдает исключение: «Фабричный объект возвратил нулевой объект».

Как я могу сказать Spring, что нулевой объект в этом случае приемлем?


person Jonas    schedule 18.07.2011    source источник


Ответы (1)


Вы можете использовать выражение для извлечения объекта из spring context в вашем аргументе конструктора, например:

<object name="someObject" singleton="false" 
        type="SomeType.someObject, SomeAssembly">
  <constructor-arg name="authSession" 
                   expression="@(AuthSessionManager).CurrentAuthSession" />
</object>

Выражения могут принимать значение null, поэтому вам не нужно ничего сообщать Spring. Это сработало для меня в простом случае (без вложенных контекстов).

person Marijn    schedule 20.07.2011
comment
В итоге я решил это по-другому, но вернулся и проверил это, и это тоже сработало. Спасибо! :D - person Jonas; 25.07.2011