Utiliser Castle Windsor pour injecter IRailsEngineContext
Question
Problème
J'utilise Castle Windsor comme conteneur IoC dans un projet Castle Monorail. Je souhaite injecter l'instance actuelle de IRailsEngineContext dans un objet en cours de résolution à partir du conteneur dans un contrôleur.
Contexte
L'objet dans lequel je souhaite injecter le contexte de rails sera utilisé pour envelopper l'objet de session afin de conserver les identifiants des enregistrements précédemment visualisés. Il serait ensuite référencé pour s'assurer qu'ils ne soient plus visionnés.
Autres solutions
Je pourrais passer le contexte aux méthodes à chaque appel ou l'injecter manuellement, mais il serait bien de l'injecter directement à partir du conteneur.
Question
Je ne trouve pas de moyen d'injecter le contexte dans le conteneur. Y a-t-il un moyen de faire cela? Est-ce que cela a du sens?
La solution
Container.Register(
Component.For<IRailsEngineContext>()
.UsingFactoryMethod(()=>MonoRailHttpHandler.CurrentContext)
.LifeStyle.Transient
);
IRailsEngineContext: il s'agit d'une ancienne version de MonoRail, je suppose. Je vous conseillerais de passer à une nouvelle, le plus tôt sera le mieux.