¿Cómo usar un solo componente para servicios múltiples en Unity Framework?Tipos reenviados en Microsoft Unity
En Windsor se configura de la siguiente manera:
var container = new WindsorContainer();
container.Register(Component.For<Service1, Service2>()
.ImplementedBy<Component>());
var service1 = container.Resolve<Service1>();
var service2 = container.Resolve<Service2>();
La idea con tipos reenviados es que si el componente es un producto único y service1
service2
son la misma instancia.
¡Gracias! Pero, ¿sabía que pasará la prueba incluso si elimina ContainerControlledLifetimeManager() para IService1 o IService2? ¿Quién decidió que ContainerControlled anulará la vida útil transitoria (para los componentes con los mismos nombres, nombre predeterminado en nuestro caso)? –
Eso es realmente sorprendente. No tengo una buena explicación para eso. De hecho, estaría tentado de registrarlo como un error ... –
Con Unity 1.2 esa prueba falla sin ContainerControlledLifetimeManager – onof