Контейнеры обычно следует считать неизменяемыми. Зарегистрируйте все ваши зависимости перед построением / разрешением. Если вам нужно изменить содержимое контейнера, технически вам следует перестроить контейнер. Этот метод может быть удален в будущем основной версии.

емя обсуждения Autofac с коллегой возникла проблема регистрации зависимостей во время выполнения. Например, в Prism сборки часто загружаются во время выполнения, а их зависимости регистрируются в контейнере IoC (обычно Unity).

Как это можно сделать с помощью Autofac?

Из документации Autofac и того, что я нашел в Интернете, кажется, что регистрация выполняется при запуске приложения. Даже когда используются «внешние» сборки, регистрации располагаются в модулях со сборками при запуске приложения. Как мы это делаем после того, как контейнер «собран» при запуске приложения?

(Обратите внимание, что сборка может захотеть добавить зависимости для использования других компонентов в приложении, и поэтому вложенный контейнер может не решить проблему здесь. Связанный с этим разделом: Unity имеет методы, такие как RegisterIfExists и тому подобное. Есть ли Autofac эквиваленты?)

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос