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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top