В моем случае я использую Castle Windsor в качестве контейнера IoC.
Я хотел бы объявить компонент, в котором один из аргументов конструктора будет установлен на существующий объект во время выполнения, вместо того, чтобы контейнер IoC создавал объект при создании компонента. Например, экземпляр основной формы моего приложения.
Я подозреваю, что есть два подхода:
- Создайте объект через контейнер в первый раз, затем настройте его с любыми необходимыми значениями времени выполнения, чтобы, когда впоследствии компонент запросил его у Windsor, он был готов к использованию.
- Создайте
IFormProvider
и конкретный FormProvider
, где компоненту требуется ввести значение IFormProvider
, которое он впоследствии запрашивает для экземпляра формы (т. Е. formProvider.Form
).
Есть ли какие-либо авансы по этому вопросу?