DI - 使用参数解析实例(使用 DryIoc 的 Prism)

DI - resolving instance using parameter (Prism using DryIoc)

我一直在网上搜索如何使用在运行时使用参数的 Prism DryIOC 解析实例,但幸运的是。

比如我有一个class:

internal sealed class ItemInfoHelper : IItemInfoHelper
{
    //ctor
     public ItemInfoHelper(Item item) {...}
     public string GetSomething() {...}
}

在注册服务时我需要注册它。

protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
    containerRegistry.Register<IItemInfoHelper, ItemInfoHelper>();
}

如果我这样做,当我在某个地方解决它时:

var helperInstance = container.Resolve<IItemInfoHelper>();

显然可以使用空 Item 解决(使用默认 Item 构造函数)。我见过很多使用编译时已知的参数注册实例的例子。但情况是我想使用 Item 动态初始化实例,该 Item 在不同的地方是不同的(即仅在运行时已知)。

如果我使用 Prism + DryIoc,是否有办法 register/resolve 使用这种行为? 提前致谢。

最简单的类型安全方法是解析项目的功能:

var getHelperInstance = container.Resolve<Func<Item, IItemInfoHelper>>();
var helperInstance = getHelperInstance(myItem);