Что делает Kernel.Inject (instance);на самом деле делать? - PullRequest
10 голосов
/ 02 апреля 2012

Я учусь использовать инъекцию зависимостей с ninject.Большинство свойств и методов довольно интуитивно понятны, хотя у меня есть Kernel.Inject (instance);

Что делает метод Inject, поскольку он ничего не возвращает.Я посмотрел вокруг, но поиск метода inject в контейнере внедрения зависимостей - это кошмар, я не могу найти никаких ссылок на этот метод специально.

1 Ответ

15 голосов
/ 02 апреля 2012

Kernel.Inject(instance) внедрит зависимости в уже существующий объект.

Вот почему он возвращает void, потому что он берет экземпляр объекта параметра и начинает исследовать его методы и установщики свойств, ища атрибут [Inject].Затем он вызовет их с разрешенными экземплярами их типов параметров.(это называется Внедрение метода или свойства)

Таким образом, когда внедрение в конструктор не достаточно , вы можете Kernel.Inject заполнить свои зависимости для данного экземпляра.

Вы можете прочитать больше об этом здесь: Ninject Injection Patterns

...