Przeciążenie z tablicą InjectionMember
jest używane, gdy nie podano pliku konfiguracyjnego, który Unity mówi, jak utworzyć instancję danego typu lub jeśli chcesz utworzyć instancję w inny sposób niż zdefiniowano w pliku konfiguracyjnym .
Przeciążenia są używane, gdy chcesz skonfigurować kontener jedności bez pliku konfiguracyjnego. InjectionMember
może być wywołaniem konstruktora, właściwości lub metody.
Poniższy kod, pobrany z pomocy Unity, pokazuje, jak używać InjectionMembers
poprzez płynny interfejs kontenera.
IUnityContainer myContainer = new UnityContainer();
myContainer.Configure<InjectedMembers>()
.ConfigureInjectionFor<MyObject>(
new InjectionConstructor(12, "Hello Unity!"),
new InjectionProperty("MyStringProperty", "SomeText"));
Poniższa konfiguracja XML jest odpowiednikiem powyższego kodu.
<type type="MyObject" mapTo="MyObject" name="MyObject">
<typeConfig extensionType="Microsoft.Practices.Unity.Configuration.TypeInjectionElement, Microsoft.Practices.Unity.Configuration">
<constructor>
<param name="someInt" parameterType="int">
<value value="12"/>
</param>
<param name="someText" parameterType="string">
<value value="Hello Unity!"/>
</param>
</constructor>
<property name="MyStringProperty" propertyType="string">
<value value="SomeText"/>
</property>
</typeConfig>
</type>
Istnieje wiele części Pojemnik Unity Nie czułem potrzeby korzystania jeszcze. Twój przykład trafił w kilka z nich (konfiguracja XML, PropertyInjection i konfiguracja stałych parametrów, które mają zostać wstrzyknięte) .Dzięki, że wskazałeś mi właściwy kierunek, może nie potrzebuję ich teraz, ale miło jest być świadomym tego, co jest dostępne –