Usando Castle Windsor para inyectar IRailsEngineContext
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?
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.