我想创建一些代码行,它们自动注入所有类和接口。
我认为这足以创建像IBase
这样的基本界面
然后
public interface IManager : IBase { }
public interface IService : IBase { }
和课程
public class Manager : IManager { }
public class Service : IService { }
Controller的构造函数可能如下所示:
public MyController(IManager manager) { }
可以注册所有具有IBase
的接口和类,以避免逐个添加
kernel.Bind<IService>().To<Service();
?
谢谢
这可以通过使用约定绑定来实现:
https://github.com/ninject/Ninject.Extensions.Conventions
例:
kernel.Bind(x => x.FromThisAssembly().SelectAllClasses().BindAllInterfaces());
这将绑定从调用程序集到所有已实现接口的所有类。