Как отправить параметр в конструктор объекта с помощью метода Unity Resolve <> ()? - PullRequest
0 голосов
/ 07 августа 2009

Используя Unity в Prism, я хотел бы отправить параметр конструктору объекта следующим образом:

PSEUDO-CODE:

SmartFormPresenter smartFormPresenter1 =
    this.container.Resolve<SmartFormPresenter(customer)>();

Но вместо этого я должен установить его, а затем назначить свойство:

SmartFormPresenter smartFormPresenter1 =
    this.container.Resolve<SmartFormPresenter>();
smartFormPresenter1.ObjectBeingEdited = customer;

Есть ли способ отправить параметр конструктору напрямую?

1 Ответ

2 голосов
/ 07 августа 2009

Вот соответствующий вопрос, который отвечает на этот вопрос довольно хорошо: Могу ли я передать параметры конструктора в метод Unity Resolve ()?

Единственный вариант, который у вас есть, если вы хотите это сделать - это контейнер с областью действия.

IUnityContainer subContainer = this.container.CreateScopedContainer();
subContainer.RegisterInstance<Customer>(customer);
smartFormPresenter1 = subContainer.Resolve<SmartFormPresenter>();
...