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

web*_*oob 5 c# dependency-injection ninject asp.net-mvc-4

我正在按照这篇文章创建一个可插入的MVC应用程序.一旦ninject安装完毕,就说要添加:

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

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

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

这是公平的,我理解错误,但我不知道如何解决它.在ninject中有什么变化导致此错误?我很感激有关如何进行的一些建议.

nem*_*esv 9

Bind带有签名的方法(Bind(this IBindingRoot kernel, Action<IFromSyntax> configure)在本文中使用)在ninject.extensions.convention插件中的名称空间的类中被声明为扩展方法.Ninject.Extensions.ConventionsExtensionsForIKernel

所以你错过了正确的using陈述.

将此行添加到NinjectWebCommon.cs文件中以使代码编译:

using Ninject.Extensions.Conventions;
Run Code Online (Sandbox Code Playgroud)