Как отправить параметр в конструктор объекта с помощью метода 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>();
Другие вопросы по тегам