使用 Ninject 在 MVC2 中进行 IHttphandler 属性注入
我正在寻找一种在 MVC 中为 IHttpHandler 进行属性注入的方法。
对于 webforms ninject,您可以直接从 HttpHandlerBase 继承。
这不再有效,因为应用程序现在继承自 Ninject.Web.Mvc.NinjectApplication 而不是 Ninject.Web.NinjectHttpApplication。
此应用程序注册控制器的类型,而不是 PageBase、MasterPageBase 或 HttpHandlerBase。
垃圾。
他们是否可以使用 MvcHandler 类来实现这一点?
下面的帖子是我最接近的答案。
I'm looking for a way to do property injection in MVC for IHttpHandlers.
In the case of webforms ninject you could just inherit from HttpHandlerBase.
This no longer works as the application now inherits from Ninject.Web.Mvc.NinjectApplication NOT Ninject.Web.NinjectHttpApplication.
This application registers types for controllers not PageBase, MasterPageBase or HttpHandlerBase.
Rubbish.
Is their a way of doing it maybe with the MvcHandler class?
The post below is the closest I've come to an answer.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果从源代码构建 Ninject.Web.Mvc,请在 Ninject.Web.Mvc 命名空间中包含来自 Ninject.Web 的 HttpHandlerBase 类的副本。
否则,您自己的 HttpHandlerBase 将需要自行调用
Kernel.Inject
。内核引用可以通过应用程序范围或通过反射来获取。在
HttpApplication.CreateKernel()
中,将应用程序范围中的内核实例存储为“NinjectKernel”。然后添加以下内容作为您的 IHttpHandler 基类。反射方法不需要 HttpApplication 中的任何代码。
If you build Ninject.Web.Mvc from source, include a copy of the HttpHandlerBase class from Ninject.Web in the Ninject.Web.Mvc namespace.
Otherwise your own HttpHandlerBase will need to call
Kernel.Inject
on itself. The kernel reference can be obtained via Application scope, or via reflection.In
HttpApplication.CreateKernel()
store the kernel instance in the Application scope as "NinjectKernel". Then add the following as your IHttpHandler base class.The reflection approach does not require any code in your HttpApplication.