在MVC 3中,他们添加了一个Dependency Resolver我所使用的.在回答有人评论的人时,应该使用Ninject MVC 3插件.
所以我的问题是为什么使用它在内置的一个?如果是你要怎么设置的方式呢?
以上是我回答的问题的链接.
解决方法
Ninject.Web.MVC扩展(或Ninject.MVC3 NuGet包)在内部使用依赖解析器.所以基本上是使用相同的机制.但是使用扩展而不是实现自己的依赖关系解析器有几个原因:
>为什么要实现一个自己的依赖关系解析器,当已经有一个扩展完全一样?使用与其他实现相同的实现使您在遇到问题时更容易地支持您.此外,更多使用相同的实现,它得到更稳定. (见第4点).
>扩展不仅仅是依赖解析器.有关扩展名附带的所有功能的列表,请参阅http://www.planetgeek.ch/2010/11/13/official-ninject-mvc-extension-gets-support-for-mvc3/.>它在请求结束后增加对快速停用对象InRequestScope的支持.这样可以防止重负载的应用程序运行到OutOfMemory异常中.>你的帖子中的依赖关系解析器和上面的依赖解析器有一个问题.在某些情况下,如果重载,应用程序将崩溃,只显示黄页,直到应用程序重启.我不想回答所有将来会出现的问题,只因为使用了错误的依赖解析器.至少添加一个.ToList()到GetServices>在Ninject 2.4中将删除对InRequestScope的支持,以删除对System.Web的依赖关系,以减少构建目标的数量.这是一个突破性的变化.但是,基于其中一个Web扩展的项目只需要非常简单的更改才能重新运行. InRequestScope仍然可以使用这些扩展之一的项目.自定义实现将不得不添加自己的支持.