Вы не должны передавать контейнер.
Вместо этого ваш метод точки входа / main запрашивает у контейнера объекты, которые ему необходимы для запуска - например, объект / бин приложения. Затем контейнер возвращает полный граф объектов, связанный с App
, что позволяет запускать app.Run()
со всеми удовлетворенными зависимостями.
Это немного против паттерна для объектов, которые должны знать о контейнере, или для каждого объекта, запрашивающего у контейнера его зависимости - если вы сделаете это, то у вас будет не инвертированный и то, что у вас есть, - это не внедрение зависимостей - у вас все еще есть объекты, спрашивающие о том, что им нужно, вместо того, чтобы получать то, что им нужно.