Ninject的自动接线

时间:2012-01-26 13:54:00

标签: inversion-of-control ninject

某些IOC容器具有基于约定的自动布线,例如,IProductRepository映射到ProductRepository而无需您手动连接。

Ninject有这样的事吗?

2 个答案:

答案 0 :(得分:7)

// use Ninject.Extensions.Conventions for convention-based binding
kernel.Scan(scanner =>
    {
        // look for types in this assembly
        scanner.FromCallingAssembly();

        // make ISomeType bind to SomeType by default (remove the 'I'!)
        scanner.BindWith<DefaultBindingGenerator>();
    });

从@Pete Montgomery评论中复制

答案 1 :(得分:7)

Ninject附带了基于约定的配置的扩展。但是你仍然需要配置你的规范。请参阅https://github.com/ninject/ninject.extensions.conventions 3.0.0的语法已更改,但功能更强大。以下内容将为系统中的所有类添加绑定。但通常你想要不同种类的几种约定(例如服务是单身,......)

kernel.Bind(
    x => x.FromThisAssembly()
          .SelectAllClasses()
          .BindAllInterfaces());