Spring.NET expressão que faz referência a uma definição de objeto
-
05-07-2019 - |
Pergunta
Eu estou tentando fazer referência a outro objeto que eu definidos em um arquivo de configuração da Primavera a partir de uma expressão. Especificamente, eu estou tentando preencher uma propriedade com o valor de uma expressão que eu chamar um método e, em seguida, uma propriedade no objeto retornado desse método.
Eu tentei o seguinte (os nomes foram alterados):
<property name="NullableIntProperty"
expression="#{Some.Object.Id}.Get().NullableIntValue"/>
onde Some.Object.Id
é uma referência a outro objeto que eu tenha definido em um arquivo de configuração, tais como:
<object id="Some.Object.Id" ... >
mas meu aplicativo falha ao iniciar com o expecting "COLON", found '}'
exceção de análise. Eu acho que ele está esperando um espaço de nomes, mas eu não estou achando a documentação para isso.
Eu tentei várias coisas, mas em todos os lugares que eu bati um beco sem saída. Eu originalmente tentou uma combinação do MethodInvokingFactoryObject
e PropertyRetrievingFactoryObject
que usamos em outros lugares para tipos não anuláveis, mas esta falha para nullables que são realmente null
desde a Primavera vê uma fábrica de objeto retornar null
como um fracasso (que geralmente é).
Solução
Você pode usar a sintaxe de expressão @(object-id-here)
para recuperar um objeto do contexto da Primavera usando um expressão:
<property name="NullableIntProperty"
expression="@(Some.Object.Id).PropertyOnSomeObject"/>
Outras dicas
Alterar # para US $ deve corrigi-lo, eu acredito.