Pregunta

Problema

Estoy usando Castle Windsor como contenedor de IoC en un proyecto Castle Monorail. Me gustaría inyectar la instancia actual de IRailsEngineContext en un objeto que se resuelve desde el contenedor en un controlador.

Contexto

El objeto en el que me gustaría inyectar el contexto de rieles se usaría para ajustar el objeto de sesión con el fin de retener los identificadores de los registros vistos anteriormente. Luego se haría referencia para garantizar que no se vuelvan a ver.

Soluciones alternativas

Podría pasar el contexto a los métodos con cada llamada o inyectarlo manualmente, pero sería bueno inyectarlo directamente desde el contenedor.

Pregunta

No puedo pensar en una forma de inyectar el contexto dentro del contenedor. ¿Hay alguna forma de hacer esto? ¿Esto tiene sentido?

¿Fue útil?

Solución

Container.Register(
    Component.For<IRailsEngineContext>()
             .UsingFactoryMethod(()=>MonoRailHttpHandler.CurrentContext)
             .LifeStyle.Transient
);

IRailsEngineContext: eso es de una versión antigua de MonoRail, supongo. Te aconsejo que te mudes a una nueva, cuanto antes mejor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top