【发布时间】:2016-07-08 07:49:10
【问题描述】:
我有一个类库,我在内部构建了使用依赖注入 (ninject)。它被各种项目使用; MVC、windows服务、REST api等
我只是有一个这样的课程:
public class KittenInvestigator
{
[Inject]
public IKittenDetectorDevice KittenDetectorDevice { get; set; }
...
}
谷歌搜索到死我发现在类库中初始化 ninject 是不可能的,因为没有“启动”方法或钩子。
我正在寻找解决方法。关于这个问题的帖子很多,但我找不到任何解决方案或解决方法。有什么想法吗?
我考虑过的一些事情:
将绑定放入引用库的项目中。这非常糟糕,因为注入是在库内部使用的,因此外部组件永远不会知道它 - 他们必须神奇地知道添加这些绑定,否则库将无法工作。
某种反射,使我在主项目中的 ninject 代码扫描所有程序集以查找 ninject 模块并初始化它们。
类库中的静态初始化方法,必须由将设置 ninject 东西的主项目调用(看起来很俗气)。
其他一些巧妙的设计。
【问题讨论】:
-
我不太明白你的问题。为什么 Ninject 不能注入这个类?
-
你会把设置ninject的代码放在哪里?库中没有启动方法。