Выражение Spring.NET, которое ссылается на определение объекта
-
05-07-2019 - |
Вопрос
Я пытаюсь сослаться на другой объект, который я определил в конфигурационном файле Spring, из выражения. В частности, я пытаюсь заполнить свойство значением выражения, в котором я вызываю метод, а затем свойством объекта, возвращенного этим методом.
Я пробовал следующее (имена были изменены):
<property name="NullableIntProperty"
expression="#{Some.Object.Id}.Get().NullableIntValue"/>
где Some.Object.Id
- это ссылка на другой объект, который я определил в файле конфигурации, например:
<object id="Some.Object.Id" ... >
, но мое приложение не запускается из-за исключения , ожидающего " COLON " ;, найдено '}'
. Я думаю, что он ожидает пространство имен, но я не нахожу документацию для этого. Р>
Я пробовал несколько вещей, но везде я зашел в тупик. Первоначально я попытался использовать комбинацию MethodInvokingFactoryObject
и PropertyRetrievingFactoryObject
, которую мы используем в других местах для типов, не допускающих значения NULL, но это не удается для значений NULL, которые на самом деле являются NULL
, поскольку Spring видит фабрику объектов, возвращающую null
как сбой (как это обычно бывает).
Решение
Вы можете использовать синтаксис выражения @ (object-id-here)
для получить объект из контекста Spring, используя выражение :
<property name="NullableIntProperty"
expression="@(Some.Object.Id).PropertyOnSomeObject"/>
Другие советы
Изменение # на $ должно исправить это, я считаю.