我在 Ninject 上遇到了一个我以前从未见过的问题,并且不知道如何修复。我正在使用 MVC 5 的 MVC NuGet 包。
在我的NinjectWebCommon.cs中,有以下方法:
public static void Start()
{
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
bootstrapper.Initialize(CreateKernel);
}
但是,当尝试执行最后一行时,它失败了,抱怨“序列不包含元素”。我之前使用 Unity 进行 DI,但已更改为 Ninject。
有什么想法吗?
预先感谢,M
就我而言,我的项目有两个内容相同/相似的 NinjectWebCommon.cs 文件夹。 删除文件夹已解决问题。
我在通过替换整个解决方案中的文件名和其他文本来准备新解决方案时遇到了此类错误。
一切都很完美,就像应用程序一样。
但是当我去运行应用程序时,它显示“序列不包含元素”错误。
最后我终于通过使用以下方法解决了这个问题......
右键单击项目打开每个项目文件夹>>然后选择“在文件资源管理器中打开文件夹”
删除“bin”和“obj”文件夹
清理整个项目
构建应用程序
最后运行应用程序。
希望它对您有用......
谢谢...
我的两个便士与@Pavan 的帖子相关。重命名程序集后我开始收到错误。我的 bin 文件夹中残留着旧的 DLL。清洁溶液并不能解决问题。我不得不进去手动删除 bin 中的内容。
我认为这是这个问题的欺骗:Ninject + MVC3 = InvalidOperationException:序列不包含元素
TL;DR - 确保在发布站点时清除所有旧的 dll。
额外的解释细节,以扩展 @Greg_B 的有用答案:
对解决方案中也使用 Ninject 的另一个项目的引用。删除此引用即可解决问题。
我得到这个是因为我试图将 5.0.0 版本的
Castle.Core
与 3.3.5 版本的 Ninject.Extensions.Interception.DynamicProxy
一起使用,但该版本的 DynamicProxy 仅支持最高版本 4.4.0 的 Castle.Core
降级到 4.4.0 版本
Castle.Core
解决了我的问题