Вопрос

Вопрос

Я использую Castle Windsor в качестве контейнера IoC в проекте Castle Monorail. Я хотел бы добавить текущий экземпляр IRailsEngineContext в объект, который разрешается из контейнера в контроллере.

Контекст

Объект, в который я хотел бы вставить контекст рельсов, будет использоваться для обертывания объекта сеанса с целью сохранения идентификаторов ранее просмотренных записей. Затем на него будут ссылаться, чтобы они больше не просматривались.

Альтернативные решения

Я мог бы передавать контекст методам при каждом вызове или вставлять его вручную, но было бы неплохо добавить его непосредственно из контейнера.

Вопрос

Я не могу придумать, как внедрить контекст в контейнер. Есть ли способ сделать это? Имеет ли это смысл?

Это было полезно?

Решение

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

IRailsEngineContext - я думаю, это из старой версии MonoRail. Я бы посоветовал вам перейти на новый, чем раньше, тем лучше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top