Puoi copiare proprietà o valori del costruttore-Arg da oggetti in Spring.NET XML?
-
21-08-2019 - |
Domanda
Credo mi sono imbattuto in questo un paio di mesi fa, ma ora sto avendo problemi a trovare la risposta. Forse qualcuno può solo punto me la sezione giusta nel ?
Sprint.NET , sto combinando i file XML remoti in un unico contesto applicativo in cui gli oggetti sono dei motori separare dagli oggetti delle regole di business. Il problema è una delle regole di business sono valori, non oggetti, che sono necessari per <property>
e <constructor-arg>
nodi del xml del motore:
<object name="Engine">
<constructor-arg index="0" value="business rule" />
</object>
In ogni riferimento a una proprietà di un altro oggetto (uso expression
attributo invece di value
?) O forse qualche elenco specializzato nome / valore (ad esempio, la versione di primavera di per <appsettings>
, qualunque cosa sia) avrebbe funzionato.
Soluzione
Trovato! A partire da pagina 41 della Spring Framework (versione 1.2.0 M1) PDF in "Il contenitore CIO" capitolo:
5.3.8. Impostare un riferimento utilizzando i membri di altri oggetti e classi.
Dettagli coloro Questa sezione scenari di configurazione che coinvolgono l'impostazione di proprietà e argomenti del costruttore che utilizzano il membri di altri oggetti e classi. Questo tipo di scenario è abbastanza comune, soprattutto quando si tratta di eredità classi che non si può (o non vogliono) cambiare per ospitare alcuni dei convenzioni di Spring.NET ... considerano il caso di una classe che ha un argomento del costruttore che può essere solo calcolata andando a dire un Banca dati. Il maniglie MethodInvokingFactoryObject esattamente questo scenario ... lo farà permettono di iniettare il risultato di un metodo arbitrario invocazione in un costruttore (come argomento) o come il valore di un setter di proprietà. Allo stesso modo, PropertyRetrievingFactoryObject e FieldRetrievingFactoryObject si consente per recuperare i valori di un altro valore della proprietà o il campo dell'oggetto. Queste classi implementano il Interfaccia IFactoryObject che indica al Spring.NET che questo oggetto stesso è una fabbrica e la fabbriche prodotto, non la fabbrica sé, è ciò che sarà associata con l'oggetto id. oggetti di fabbrica sono discussi ulteriormente nel ???
Questa è 5.3.9.1 nel documentazione più recente in linea.