我之前的一个项目运行的是NINObject2.0运行时版本2.0,现在我在一个新项目中使用了Ninject,并在运行时版本4.0中使用了新的Ninject web.mvc版本2.2。
每次我收到错误时,都没有无参数的构造函数
无效的操作异常
尝试创建HomeController类型的控制器时出错。确保控制器有一个无参数的公共构造函数。
我错过了什么。所有绑定都已注册。
我现在是否需要像我在一些示例中看到的那样,为控制器定义接口(如HomeController和IHomeController ),或者我是否应该重新使用旧版本
发布于 2011-11-10 22:28:12
我已经在论坛上看到过几次提到这个问题,没有直接的答案,这里是上述问题的解决方案,即使用最新的解决方案
<代码>H19现在从扩展文件夹添加CommonServiceLocator.NinjectAdapter.dll在lib父文件夹中(检查上面的版本)。
所有这些中缺少的一环是commonserviceLocator.dll,正确的版本应该匹配。如果您确定您的绑定与我的绑定一样正确,并检查您的项目是否与旧版本一起工作,则应该尝试此方法。
感谢所有人,祝你好运:)
发布于 2011-11-10 05:52:32
有一个版本没有正确显示激活异常,但却显示了此异常。最有可能的问题是重复的绑定。
发布于 2011-11-10 06:00:46
除了Remo Gloor所说的之外,您可能还想检查MVC是否设置为正确使用Ninject。我在一个旧版本的MVC插件上手动做了一些事情,最终只需要咬紧牙关,让全局扩展NinjectHttpApplication类,这是我之前一直避免的。
您得到的错误是如果MVC尝试使用其内置的控制器工厂来生成控制器时会得到的错误。因此,您可能希望在控制器类上创建自定义方法绑定,并在其中放置断点,以确保它甚至被调用。
您可能还想切换到2.3版。你可以拿到最新版本的here和它的所有扩展。
https://stackoverflow.com/questions/8065650
复制相似问题