我想使用ninject模块来绑定我的接口。我还希望能够访问内核并在我的程序集的任何代码中使用[Inject]属性。我该怎么做呢?我尝试过一个包含所有模块的依赖项解析器。每个程序集都有一个内核更好吗?
答案 0 :(得分:0)
您可以且最有可能只使用一个内核。 组件的模块应该是“公共的”。 您的应用程序需要引用这些程序集并加载模块,例如
using(var kernel = new StandardKernel()) {
kernel.Load<SomeModule>;
kernel.Load<SomeOtherAssembliesModule>();
}
因此应用程序需要知道程序集的某些内容(模块)并依赖它们。
当然,您可以自由地开发一个精心设计的方案,如何根据自己的喜好自动加载模块。 例如,默认配置中的“StandardKernel”将查找名称以“ninject.extensions”开头的程序集。然后加载此程序集中包含的模块。