什么是Kernel.Inject(实例); 实际上呢?

dea*_*vmc 10 ninject

我正在学习使用ninject的依赖注入.大多数属性和方法都相当直观,但我拥有的是Kernel.Inject(instance);

Inject方法实际上做了什么,因为它没有返回任何东西.我环顾四周但是在依赖注入容器上搜索一个名为inject的方法是一场噩梦,我找不到任何具体的方法参考.

nem*_*esv 15

Kernel.Inject(instance) 将依赖项注入已存在的对象.

这就是为什么它返回void,因为它接受参数对象实例并开始研究它寻找[Inject]属性的方法和属性设置器.然后它将使用已解析的参数类型实例调用它们.(这称为方法或属性注入)

因此,当构造函数注入不够时,您可以Kernel.Inject填充给定实例的依赖项.

您可以在此处阅读更多相关信息:Ninject Injection Patterns