Ninject with MVC4 - 绑定bin文件夹中的所有程序集

时间:2014-01-01 20:15:52

标签: c# asp.net-mvc-4 dependency-injection ninject

我正在关注这篇文章来创建pluggable MVC application。安装ninject后,它会添加以下内容:

var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin"); 
kernel.Bind(a => a.FromAssembliesInPath(path).SelectAllClasses().BindDefaultInterface());

RegisterServices文件中的NinjectWebCommon.cs方法,但是,当我这样做时,我收到以下错误:

  

无法将lambda表达式转换为'System.Type []'类型,因为它是   不是代表类型。

这很公平,我理解错误,但我不知道如何绕过它。在ninject中有什么变化导致此错误?我很感激有关如何继续的建议。

1 个答案:

答案 0 :(得分:8)

文章中使用的带有签名Bind的{​​{1}}方法在Bind(this IBindingRoot kernel, Action<IFromSyntax> configure)命名空间{{1}中被声明为扩展方法 } ninject.extensions.convention插件中的类。

所以你错过了正确的Ninject.Extensions.Conventions声明。

将此行添加到ExtensionsForIKernel文件以编译代码:

using