我试图从表达式中引用我在 Spring 配置文件中定义的另一个对象。具体来说,我尝试使用调用方法的表达式的值填充属性,然后填充从该方法返回的对象上的属性。
我已尝试以下操作(名称已更改):
<property name="NullableIntProperty"
expression="#{Some.Object.Id}.Get().NullableIntValue"/>
其中 Some.Object.Id
是对我在配置文件中定义的另一个对象的引用,例如:
<object id="Some.Object.Id" ... >
但我的应用程序无法启动,并出现解析异常期望“COLON”,找到“}”
。我认为它需要一个命名空间,但我没有找到这方面的文档。
我尝试过很多事情,但到处都陷入了死胡同。我最初尝试了 MethodInvokingFactoryObject
和 PropertyRetreeringFactoryObject
的组合,我们在其他地方将其用于不可为空类型,但是对于实际上为 null
的可空值,这会失败。 code> 因为 Spring 认为对象工厂返回 null
作为失败(通常是这样)。
最佳答案
您可以使用 @(object-id-here)
表达式语法来 retrieve an object from the Spring context using an expression :
<property name="NullableIntProperty"
expression="@(Some.Object.Id).PropertyOnSomeObject"/>
关于c# - 引用对象定义的 Spring.NET 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1406925/