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

时间:2012-04-02 19:32:15

标签: ninject

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

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

1 个答案:

答案 0 :(得分:15)

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

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

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

您可以在此处详细了解:Ninject Injection Patterns