我有一个想要移植到 MVC4 的 MVC3 应用程序。我正在使用 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