我曾经有一个标准的ASP.NET MVC 3应用程序,通过WebActivators preAppStart钩子进行Ninject连接。我的控制器是通过构造函数注入依赖注入的 - 经典。
但是我不需要通过.ashx web处理程序处理一些请求。从SO上的几个讨论中可以知道,注入处理程序的唯一方法是通过服务定位器实例。
如果我需要为控制器准备一个在Ninject内核中实例化的实例,该怎么办?
我的ISessionChecker
绑定到ninject模块中Singleton作用域中的XmlSessionChecker
,并且模块被加载到内核中,内核被引导到app_start的ASP.NET MVC应用程序中。
现在我需要我的处理程序从全局内核中找到这个相同的XmlSessionChecker实例。我可以以某种方式将此内核作为服务定位器吗?
答案 0 :(得分:1)
好吧,事实证明我可以使用System.Web.Mvc.DependencyResolver.Current.GetService
来定位我的依赖关系,就像我在任何其他MVC 3应用程序的代码中一样。