我有一个MVC3应用程序,我想要移植到MVC4.我正在使用Ninject进行依赖注入.使用Nuget,我在项目中添加了“Ninject”,并创建了一个控制器工厂,如下所示
- public class NinjectControllerFactory : DefaultControllerFactory
- {
- private IKernel ninjectKernel;
- public NinjectControllerFactory()
- {
- ninjectKernel = new StandardKernel();
- AddBindings();
- }
- protected override IController GetControllerInstance(RequestContext requestContext,Type controllerType)
- {
- return controllerType == null ? null : (IController)ninjectKernel.Get(controllerType);
- }
- private void AddBindings()
- {
- //Add ninject bindings here
- }
- }
这对MVC3很好,但是在MVC4中却发生了变化.我做了一些挖掘,发现这个链接,解释如何让Ninject工作的MVC4
http://haacked.com/archive/2012/03/11/itrsquos-the-little-things-about-asp-net-mvc-4.aspx
但是,我在上述链接中编写代码时遇到麻烦.具体来说,我应该在web.common文件的Start()方法中放置的代码给我未解决的命名空间错误
- GlobalConfiguration.Configuration.ServiceResolver
- .SetResolver(DependencyResolver.Current.ToServiceResolver());
“ServiceResolver”和“.SetResolver”都未解决.我需要添加什么参考以启用这些?另外,如果可能,你可以指出一个教程,告诉我如何让ninject在MVC4中工作,而无需安装nuget软件包ninject.mvc3?我问,因为我不想在我的应用程序中安装任何为MVC3编写的软件包,专门用于避免这些nuget软件包更新时出现故障.
编辑:我应该补充说我正在使用Visual studio 2012和.Net 4.5