引用对象定义的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 代码>因为Spring看到一个对象工厂将
null
作为失败返回(通常是这样)。
解决方案
您可以将 @(object-id-here)
表达式语法用于使用表达式从Spring上下文中检索对象:
<property name="NullableIntProperty"
expression="@(Some.Object.Id).PropertyOnSomeObject"/>
其他提示
将#改为$应该修复它,我相信。
不隶属于 StackOverflow