我已经把MVC3从RC2升级到了RTM。我们使用的是Ninject 2.1.0.76,但是一旦我升级了,它就停止工作了。因此,我使用NuGet管理器获得了最新的Ninject.MVC3和Ninject.Web.Mvc库(分别为2.1.0.91、1.0.0.0和2.1.0.39 )。现在,它创建一个AppStart_NinjectMVC3文件。
我从我的global.asax中删除了NinjectHttpApplication,并将其恢复为常规的HttpApplication。当我尝试构建时,我得到了;
“调用的目标抛出异常”
再往下看,如果我禁用了下面这行;
DependencyResolver.SetResolver(新NinjectServiceLocator(内核));
构建就完成了。但我很确定我不想这么做。
有什么想法吗?
-更新
我创建了一个新的MVC3项目,添加了对Ninject.MVC3的引用,并且构建和运行良好。我比较了web.config,看不出两者有什么不同。一个新的项目没有添加Ninject.Web.Mvc库,所以我删除了它,并注释掉了所有与此相关的代码,但仍然出现了错误。
发布于 2011-01-24 23:03:00
从ASP.NET MVC3Beta开始,IServiceLocator接口is replaced由IDependencyResolver开发。我不确定Ninject.MVC3是否已经发布了实现此接口的版本。
从DependencyResolver.SetResolver(new NinjectServiceLocator(kernel))这一行判断,他们似乎还没有。
Here's这个接口的一个简单实现。
更新:Ninject.Web.Mvc库有一个从IDependencyResolver接口扩展而来的NinjectDependencyResolver类。我认为你应该使用这个(我这样做了,一切都很好)。
发布于 2011-01-25 01:25:22
从这里下载dlls
https://github.com/ninject/ninject/archives/master
https://github.com/ninject/ninject.web.mvc/archives/master
此外,请不要在Ninject.Web.Mvc中使用所有需要的Ninject.MVC3
我还有一篇文章记录了相同的here
https://stackoverflow.com/questions/4783372
复制相似问题