die unter Konfiguration BeiSchloss Windsor Fluent API: Definieren Abhängigkeit explizit
Container.Register(Component.For<A>().Named("foo"));
Container.Register(Component.For<B>().Named("foobar"));
Container.Register(
AllTypes.Pick()
.FromAssemblyNamed("MyAssembly")
.If(t => t.Name.EndsWith("ABC"))
.Configure(c => c.LifeStyle.Is(LifestyleType.Transient))
.WithService.Select(i => typeof(I))
);
Container.Register(
AllTypes.Pick()
.FromAssemblyNamed("MyAssembly")
.If(t => t.Name.EndsWith("123"))
.Configure(c => c.LifeStyle.Is(LifestyleType.Transient))
.WithService.Select(i => typeof(I))
);
Wenn ich weiß, dass die Schnittstelle „I“ eine Eigenschaft „P“ aussetzt, und dass die Klassen A und B bis P zugeordnet werden ; Wie stelle ich explizit fest, dass bei der ersten Auflistung von Typen aus dem AllTypes-Aufruf die Eigenschaft P auf den Typ mit der ID "foo" festgelegt werden soll und die zweite Auflistung dieselbe Eigenschaft auf den Typ mit der ID "foobar" haben soll "?
Mithilfe der XML-Konfiguration kann dies durch explizites Festlegen der Parameter in der $ {id} -Notation erfolgen. Ich nehme an, es ist ähnlich in der fließenden API.
Danke.
Sie haben Recht - ich bin, wenn dieses ideale Verhalten seitens der fließenden Registrierung nicht sicher - in der Lage sein Eine vorherige Konfiguration zu überschreiben ist in einigen Szenarien nützlich, aber in den meisten Fällen wahrscheinlich etwas unerwartet! – Bittercoder