Что такое Kernel.Inject(экземпляр); на самом деле делать?

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

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

Ответ 1

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

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

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

Подробнее об этом можно прочитать здесь: Образцы инъекций для инъекций