Können Sie kopieren Eigenschaft oder Konstruktor-Arg- Werte von Objekten in Spring.NET XML?
-
21-08-2019 - |
Frage
Ich glaube, ich über das kam vor ein paar Monaten, aber jetzt Ärger Ich habe die Antwort zu finden. Vielleicht kann mich jemand nur in der Dokumentation rel="nofollow?
Mit Sprint.NET , ich bin die Kombination von Remote-XML-Dateien in einer einzigen Anwendung Kontext, in dem die Motor Objekte getrennt von den Geschäftsregel-Objekten. Das Problem ist, ein Teil der Geschäftsregeln Werte sind, nicht Objekte, die von <property>
und <constructor-arg>
Knoten im Motor xml benötigt werden:
<object name="Engine">
<constructor-arg index="0" value="business rule" />
</object>
So oder Verweisen auf eine Eigenschaft eines anderen Objekts (Verwendung expression
Attribut statt value
?) Oder vielleicht einige spezielle Name / Wert-Liste (z Spring-Version zu <appsettings>
, was auch immer das ist) funktionieren würde.
Lösung
Gefunden! Ab Seite 41 des Spring Framework (Version 1.2.0 M1) PDF in "Die IoC-Containern" Kapitel:
5.3.8. Setzen eine Referenz der Mitglieder anderer Objekte und Klassen verwenden.
In diesem Abschnitt werden diejenigen Konfigurationsszenarien, die beinhalten die Einstellung von Eigenschaften und Konstruktorargumente mit der Mitglieder anderer Objekte und Klassen. Diese Art von Szenario ist durchaus üblich, vor allem, wenn mit Legacy-Behandlung Klassen, die Sie nicht (oder nicht) ändern einige aufzunehmen Spring.NET Konventionen ... betrachten der Fall einer Klasse, die eine hat Konstruktor Argument, das nur sein kann berechnet, indem ein sagen, gehen Datenbank. Das MethodInvokingFactoryObject Griffe genau dieses Szenario ... es wird damit Sie das Ergebnis eines injizieren beliebiger Methodenaufruf in eine Konstruktor (als Argument) oder als die Wert einer Eigenschaft Setter. Ähnlich, PropertyRetrievingFactoryObject und FieldRetrievingFactoryObject ermöglicht es Ihnen, zum Abrufen von Werten aus einem anderen Objekt Eigentum oder Feldwert. Diese Klassen implementieren die IFactoryObject Schnittstelle, die dass dies anzeigt, Spring.NET Objekt ist selbst eine Fabrik und die Fabriken Produkt, nicht die Fabrik selbst ist, was zugeordnet wird mit der Objekt-ID. Factory-Objekte werden weiter diskutiert in ???
Dies ist 5.3.9.1 in der neueste Online-Dokumentation .