在Windows服务中注入多个程序集

时间:2014-05-08 07:34:53

标签: c# ninject

我想使用ninject模块来绑定我的接口。我还希望能够访问内核并在我的程序集的任何代码中使用[Inject]属性。我该怎么做呢?我尝试过一个包含所有模块的依赖项解析器。每个程序集都有一个内核更好吗?

1 个答案:

答案 0 :(得分:0)

您可以且最有可能只使用一个内核。 组件的模块应该是“公共的”。 您的应用程序需要引用这些程序集并加载模块,例如

using(var kernel = new StandardKernel()) {
    kernel.Load<SomeModule>;
    kernel.Load<SomeOtherAssembliesModule>();
}

因此应用程序需要知道程序集的某些内容(模块)并依赖它们。

当然,您可以自由地开发一个精心设计的方案,如何根据自己的喜好自动加载模块。 例如,默认配置中的“StandardKernel”将查找名称以“ninject.extensions”开头的程序集。然后加载此程序集中包含的模块。