Compte tenu de la configuration ci-dessousWindsor Castle API Courant: Définir la dépendance explicitement
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))
);
Si je sais que l'interface "I" expose une propriété "P", et que les classes A et B peut être affecté à P ; comment je déclare explicitement que la première collection de types de l'appel AllTypes doit avoir la propriété P définie sur le type avec l'ID de "foo", et la deuxième collection doit avoir la même propriété définie sur le type avec l'ID de "foobar "? En utilisant XML config, ceci peut être fait en définissant explicitement les paramètres en utilisant la notation $ {id}. Je suppose que c'est similaire dans l'API fluide.
Merci.
Vous avez raison - je ne sais pas si ce comportement idéal de la part de l'enregistrement courant - pouvoir Remplacer une configuration précédente est pratique dans certains scénarios, mais probablement un peu inattendu dans la plupart des cas! – Bittercoder