gpt4 book ai didi

c# - 重用 DryIoc 构造函数参数

转载 作者:行者123 更新时间:2023-11-30 21:30:36 25 4
gpt4 key购买 nike

我有一个 Container注册一个 Presenter View 类:

Container.Register<ListCellPresenter>();

Presenter的构造函数为其 View 接受一个参数:

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);

如有任何提示或指导,我们将不胜感激。

最佳答案

该问题确实是一个bug,在最新的预览版中已经修复: https://github.com/dadhi/DryIoc/issues/29

关于c# - 重用 DryIoc 构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54138000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com