Tengo lo que probablemente sea una simple pregunta aquí sobre Castle Windsor, que no he estado usando por mucho tiempo. Intento registrar un servicio con una instancia específica que será la implementación única del servicio.Especificando la instancia para el registro de un componente con Castle Windsor
El contenedor no puede intentar crear la implementación del servicio en sí porque tiene dependencias que el contenedor no podrá resolver. Tengo una instancia del servicio y quiero que sea la única instancia utilizada para cualquiera que solicite el servicio. Pero parece que tengo muy poca suerte.
que momentáneamente había esperanzas suscitadas por el uso de este código:
container.Register(Component.For<IMyInterface>().Instance(serviceObj));
Pero todo Castillo hace con la instancia es hacer un .GetType() en él y se registra el tipo. Las solicitudes del servicio provocarán posteriormente que el contenedor intente crear ese tipo y fallará cuando no pueda completar las dependencias.
Entonces, ¿hay alguna manera de hacer lo que quiero hacer aquí? Si no, crearé algún tipo de IServiceProvider que obtenga la instancia del servicio y no tenga dependencias para que el contenedor complete. Pero esto parece más una solución que la solución correcta.
¿Alguna sugerencia? ¡Gracias!
Gracias Gerrie y Bojan! Funcionó una delicia. –
Como una breve nota, esta técnica ahora está en desuso. Use 'container.Register (Component.For() .Instance (myT));' en su lugar. –
eouw0o83hf
Ese enlace también está muerto ahora – Liam