每个请求的Ninject寄存器

时间:2011-07-24 23:43:08

标签: asp.net-mvc asp.net-mvc-3 ninject ninject.web.mvc

我的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

我认为Global_asax的一些特定于Request的方法将是一个不错的地方,并试图访问一些NinjectHttpApplicaton属性来为每个请求注册依赖项。我访问了内核并得到了过时的警告“不要使用Ninject作为服务定位器”。我究竟做错了什么?怎么做对了?

1 个答案:

答案 0 :(得分:5)

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