Корень композиции - это единственное место в вашем приложении, где осуществляется компоновка графов объектов для вашего приложения с использованием контейнера внедрения зависимостей (хотя то, как это сделано, не имеет значения, оно может использовать контейнер или может быть сделановручную, используя pure DI ).
Это должно быть только в одном месте, и ваш контейнер не должен использоваться вне корня композиции.
Цитата изодин из ответов, указанных ниже:
На практике это означает, что вы должны настроить контейнер в корне вашего приложения.
- В настольном приложении этобудет в методе Main (или очень близко к нему)
- В приложении ASP.NET (включая MVC) это будет в Global.asax
- В WCF это будет вServiceHostFactory
- и т. д.
Есть хороший ответ здесь , который объясняет немного больше об этом.
См.также этот ответ .