TLDR: Каков наилучший способ использования контейнера IoC после его настройки?Лучшая практика использования контейнера для впрыскивания зависимостей/обслуживания?
Я читал на IoC (инъекции зависимостей, локаторы обслуживания и т. Д.). Я получаю DI хорошо, и что контейнеры IoC могут упростить создание объектов, но то, что я не имеет, - это все, что показывает, как на самом деле использовать контейнер для инъекций, как только вы его настроили. Большинство учебных пособий останавливаются на том, чтобы просто настроить контейнер и отправить вам свой путь, но по какой-то причине он просто не нажимает, как наилучшим образом использовать контейнер для инъекций после его настройки.
Из того, что я могу сказать, что есть 2 способа я мог бы использовать контейнер:
- Instantiate всю мыслимая зависимость фронт и иметь тот поток через приложение через единую точку входа с потенциально огромным количеством зависимостей ,
- Это кажется глупым, потому что вы можете создавать множество экземпляров классов, которые вам действительно не нужны. Также кажется, что вам вряд ли понадобится контейнер для этого.
- Переместите контейнер для инъекций в какой-либо глобальный объем и вызовите его, когда мне нужен новый объект, который имеет зависимости.
- Это кажется глупым, потому что в.) теперь вы создали глобальный/синглтон (блевать) и б.) теперь ваш инжектор зависимости iteself является зависимостью.
Оба эти варианта не кажутся идеальными, так что мне интересно, если я просто отсутствует нечто фундаментальное о том, как предполагается инъекции контейнер для использования на практике. Любая помощь будет оценена!
Я могу посоветовать вам получить копию [этой книги] (https://www.manning.com/books/dependency-injection-in-dot-net). – Steven