Подтвердить что ты не робот

Что представляет собой корень композиции в контексте инъекции зависимостей

Я изучаю инъекцию зависимостей, а термин корень композиции используется повсеместно. Итак, что это такое?

4b9b3361

Ответ 1

Корень композиции - это единственное место в вашем приложении, где выполняется компоновка графиков объектов для вашего приложения, используя контейнер инъекции зависимостей (хотя, как это делается, не имеет значения, он может использовать контейнер или может быть выполнен вручную используя чистый DI).

Здесь должно быть только одно место, где это происходит, и ваш контейнер не должен использоваться вне корня композиции.

Цитата из одного из ответов, приведенных ниже:

На практике это означает, что вы следует настроить контейнер на корень вашего приложения.

  • В настольном приложении это будет в основном методе (или очень близко к нему).
  • В приложении ASP.NET(включая MVC) это будет Global.asax
  • В WCF это будет в ServiceHostFactory
  • и др.

Существует хороший ответ here, который объясняет это немного подробнее.

См. также этот ответ.