У меня есть Container
, который регистрирует класс Presenter
для представления:
Container.Register<ListCellPresenter>();
Конструктор Presenter
принимает один аргумент для своего представления:
public ListCellPresenter(ListCellView view) {
this.view = view;
}
И у меня есть View
, который разрешает экземпляр Presenter
, передавая себя в качестве аргумента для конструктора:
Container.Resolve<ListCellPresenter>(new object[] {this});
На главном экране у меня есть несколько экземпляров этого View
, каждый из которых нуждается в своем собственном экземпляре Presenter
. Эта часть работает.
Однако, похоже, что DryIoc постоянно использует первый объект, полученный во время выполнения, для удовлетворения аргумента конструктора. Каждый новый экземпляр Presenter
получает первый экземпляр View
, когда желательно, чтобы каждый из них получал уникальные экземпляры.
Я пробовал различные комбинации примеров, которые я нашел в документах, включая:
- Регистрация в
RegisterDelegate
, где делегат явно использует Args.Index<ListCellView>(0)
для удовлетворения зависимости
- Регистрация по стандарту
Register
с использованием Made.Of(() => new ListCellPresenter(Arg.Of<ListCellView>())
- Разрешение с
var getPresenter = Container.Resolve<Func<ListCellView, ListCellPresenter>>();
, за которым следует presenter = getPresenter(this);
Буду признателен за любые советы или рекомендации.