我的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作为服务定位器”。我究竟做错了什么?怎么做对了?
答案 0 :(得分:5)
要根据语言等条件更改实现,您应该使用条件绑定。例如。 Bind<IFoo>().To<Foo>().When(ctx => Language == Language.English)