Wpf 如何解析IContainerProvider(prism 7+;)中类型的所有实例

Wpf 如何解析IContainerProvider(prism 7+;)中类型的所有实例,wpf,prism,Wpf,Prism,我在unity容器中有多个注册为服务的接口实现。直到今年6月5日,UnityBooksTrapper的工作都做得很好。我能够解析服务的所有实例,并在其中选择要进一步使用的实例 从Prism 7开始,我无法找到通过IContainerProvider解析该类型所有实例的方法。有什么想法吗 cc:prism开发人员可以使用GetContainer扩展获取底层容器,或者最好不要主动解析。最好让容器在消费者不知道东西从哪里来的情况下注入 旁注:引导程序还在那里。标记为过时并不意味着“不能使用”。谢谢。奇

我在unity容器中有多个注册为服务的接口实现。直到今年6月5日,UnityBooksTrapper的工作都做得很好。我能够解析服务的所有实例,并在其中选择要进一步使用的实例

从Prism 7开始,我无法找到通过IContainerProvider解析该类型所有实例的方法。有什么想法吗


cc:prism开发人员可以使用
GetContainer
扩展获取底层容器,或者最好不要主动解析。最好让容器在消费者不知道东西从哪里来的情况下注入


旁注:引导程序还在那里。标记为过时并不意味着“不能使用”。

谢谢。奇怪的是,这个函数是如何从facade(IContainerProvider)中删除的,因为可能存在消费者需要处理该类型的多个实例的实际情况。如果需要所有注册的类型,则始终可以插入数组或
IEnumerable
。这是一个好主意,但是,它去掉了可扩展性方面。假设您正在加载应用程序的所有加载项。加载项(以DLL的形式)可以在编译后动态删除。在某些地方存在误解,因为注入数组与
ResolveAll
完全相同。注册地点无关紧要。假设
ModuleA
寄存器
ControllerA
ModuleB
寄存器
ControllerB
并且一些代码被
IController[]
注入,它将接收
ControllerA
的一个实例和
ControllerB
的一个实例,就像一些代码在需要添加注入IController[]的代码时就执行了
ResolveAll
,扩展性就会丢失。该代码现在依赖于ControllerA和ControllerB。ResolveAll提供松耦合。