我正在学习使用ninject的依赖注入。大多数属性和方法都相当直观,但我有一个属性和方法是Kernel.Inject(instance);
Inject方法实际上做了什么,因为它没有返回任何内容。我环顾四周但是在依赖注入容器上搜索一个名为inject的方法是一场噩梦,我找不到具体的方法参考。
答案 0 :(得分:15)
Kernel.Inject(instance)
会将依赖项注入已存在的对象中。
这就是为什么它返回void,因为它接受参数对象实例并开始研究它寻找[Inject]
属性的方法和属性设置器。然后它将使用已解析的参数类型实例调用它们。 (这称为方法或属性注入)
因此,当构造函数注入不足 时,您可以Kernel.Inject
填写给定实例的依赖项。
您可以在此处详细了解:Ninject Injection Patterns