每个请求的Ninject寄存器

Sib*_*Guy 4 asp.net-mvc ninject ninject.web.mvc asp.net-mvc-3

我的ASP.NET MVC 3应用程序使用Ninject和Ninject ASP.NET MVC 3集成.我重载了CreateKernel方法.

现在我需要以这种方式为每个查询设置一些依赖项:

if (Language == Language.English)
  //register English language implementations
else if (Language == Language.Russian)
  //register Russain language implementations
Run Code Online (Sandbox Code Playgroud)

我thougt一些Global_asax的请求特定的方法将是一个不错的地方,并试图访问某些NinjectHttpApplicaton性质的登记每个请求的依赖关系.我访问了内核并得到了过时的警告"不要使用Ninject作为服务定位器".我究竟做错了什么?怎么做对了?

Rem*_*oor 5

要根据某些条件(如语言)更改实现,您应该使用条件绑定.例如Bind<IFoo>().To<Foo>().When(ctx => Language == Language.English)