Как отправить параметр в конструктор объекта с помощью метода Unity Resolve<>()?
Используя Unity в Prism, я хотел бы отправить параметр конструктору объекта следующим образом:
PSEUDO-CODE:
SmartFormPresenter smartFormPresenter1 =
this.container.Resolve<SmartFormPresenter(customer)>();
Но вместо этого я должен установить его, а затем назначить свойство:
SmartFormPresenter smartFormPresenter1 =
this.container.Resolve<SmartFormPresenter>();
smartFormPresenter1.ObjectBeingEdited = customer;
Есть ли способ отправить параметр конструктору напрямую?
1 ответ
Решение
Вот смежный вопрос, который хорошо отвечает на это: могу ли я передать параметры конструктора в метод Resolve() Unity?
Единственный вариант, который у вас есть, если вы хотите это сделать - это контейнер с областью действия.
IUnityContainer subContainer = this.container.CreateScopedContainer();
subContainer.RegisterInstance<Customer>(customer);
smartFormPresenter1 = subContainer.Resolve<SmartFormPresenter>();