使用温莎城堡注入IRailsEngineContext

发布于 2024-07-25 07:30:53 字数 344 浏览 8 评论 0原文

问题

我在 Castle Monorail 项目中使用 Castle Windsor 作为 IoC 容器。 我想将 IRailsEngineContext 的当前实例注入到从控制器中的容器解析的对象中。

上下文

我想要将 Rails 上下文注入的对象将用于包装会话对象,以便保留以前查看的记录的 id。 然后将引用它以确保它们不会被再次查看。

替代解决方案

我可以在每次调用时将上下文传递给方法或手动注入它,但最好直接从容器注入它。

问题

我想不出一种在容器内注入上下文的方法。 有没有办法做到这一点? 这还有道理吗?

Issue

I am using Castle Windsor as an IoC container in a Castle Monorail project. I would like to inject the current instance of IRailsEngineContext into an object being resolved from the container in a controller.

Context

The object I would like inject the rails context into would be used to wrap the session object for the purpose of retaining the ids of previously viewed records. It would then be referenced to ensure that they aren't viewed again.

Alternate Solutions

I could pass the context to the methods with each call or inject it manually, but it would be nice to inject it directly from the container.

Question

I can't think of a way to inject the context within the container. Is there a way to do this? Does this even make sense?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

城歌 2024-08-01 07:30:53
Container.Register(
    Component.For<IRailsEngineContext>()
             .UsingFactoryMethod(()=>MonoRailHttpHandler.CurrentContext)
             .LifeStyle.Transient
);

IRailsEngineContext - 我猜它来自 MonoRail 的版本。 我建议你换一个新的,越早越好。

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

IRailsEngineContext - that's from an old version of MonoRail I guess. I'd advise you move to a newer one, the sooner the better.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文