ASP.NET MVC服务定位器将依赖项注入Web处理程序

时间:2012-03-24 09:01:19

标签: .net asp.net-mvc-3 dependency-injection ninject

我曾经有一个标准的ASP.NET MVC 3应用程序,通过WebActivators preAppStart钩子进行Ninject连接。我的控制器是通过构造函数注入依赖注入的 - 经典。

但是我不需要通过.ashx web处理程序处理一些请求。从SO上的几个讨论中可以知道,注入处理程序的唯一方法是通过服务定位器实例。

如果我需要为控制器准备一个在Ninject内核中实例化的实例,该怎么办?

我的ISessionChecker绑定到ninject模块中Singleton作用域中的XmlSessionChecker,并且模块被加载到内核中,内核被引导到app_start的ASP.NET MVC应用程序中。

现在我需要我的处理程序从全局内核中找到这个相同的XmlSessionChecker实例。我可以以某种方式将此内核作为服务定位器吗?

1 个答案:

答案 0 :(得分:1)

好吧,事实证明我可以使用System.Web.Mvc.DependencyResolver.Current.GetService来定位我的依赖关系,就像我在任何其他MVC 3应用程序的代码中一样。