【发布时间】:2011-07-28 00:27:38
【问题描述】:
我想构建一个 WPF/Prism 应用程序,其中每个顶级窗口都位于其自己的 UI 线程中。这是相当直截了当的。我使用 Unity 作为我的 DI 容器,并希望创建容器层次结构。在最简单的情况下,根容器将位于应用程序级别,每个窗口都有一个子容器。这是可取的,因为每个窗口都可以有自己的共享对象,由子容器限定。
我希望每个窗口都有自己的 Prism 区域管理器,这样我就不会有任何跨线程问题,因为每个窗口都有自己的 UI 线程。我看到 Region 和 RegionManager 使用 ServiceLocator.Current 单例。这是一个问题,因为我希望 RegionManager 使用它所限定的容器,而静态单例是不可能的。你们中有人遇到过这个问题吗?如何解决?
谢谢!
【问题讨论】:
-
使用
ServiceLocator仅解析特定对象。如果您不需要在每个窗口的基础上覆盖这些,我相信您可以让睡狗撒谎。您是否发现您需要覆盖? -
看来我需要覆盖这些,以便每个窗口都有一个区域导航服务和区域管理器和区域注册表。由于它使用 ServiceLocator Singleton,我看不出有一种方法可以使其与当前设计一起使用。
-
我相信这是一个与原始问题不同的问题。见这里:stackoverflow.com/questions/5276984/…
标签: wpf unity-container prism prism-4