2012-03-24 23 views
2

我曾经有一个标准的ASP.NET MVC 3应用程序,它是通过WebActivators preAppStart钩子进行Ninject连接的。我的控制器是通过构造器注入依赖注入 - 经典。ASP.NET MVC服务定位器将依赖项注入到Web处理程序中

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

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

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

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

回答

1

那么,事实证明,我可以使用System.Web.Mvc.DependencyResolver.Current.GetService找到我的依赖项,就像我在任何其他MVC 3应用程序的代码。

+0

非常感谢。你拯救了我的一天。我一直在寻找解决这个问题的好几个小时。直到我找到你的:) – 2013-08-01 12:48:54