Silverlight 4.0 Prism RegionManager和Unity容器出现问题

Silverlight 4.0 Prism RegionManager和Unity容器出现问题,silverlight-4.0,unity-container,regions,prism-4,Silverlight 4.0,Unity Container,Regions,Prism 4,我有一个主要的Silverilght项目和其他模块,我正在使用Prism将它们与Unity粘合在一起以进行依赖注入 我有一个模块依赖于IRegionManager,它自然会被Unity注入其中 我运行的问题是,我得到的RegionManager的Regions属性不包含任何区域,即使我在Shell中声明了其中两个区域,如下所示: regions:RegionManager.RegionName="MainRegion" 我想不出这种行为的原因。我已经尝试使用 Container.Registe

我有一个主要的Silverilght项目和其他模块,我正在使用Prism将它们与Unity粘合在一起以进行依赖注入

我有一个模块依赖于
IRegionManager
,它自然会被Unity注入其中

我运行的问题是,我得到的
RegionManager
Regions
属性不包含任何区域,即使我在Shell中声明了其中两个区域,如下所示:

regions:RegionManager.RegionName="MainRegion"
我想不出这种行为的原因。我已经尝试使用

Container.RegisterInstance<IRegionManager>(new RegionManager());
这就是为什么我需要抓住“MainRegion”对象本身并对其进行操作

我希望有人已经弄明白了。我将非常感激:)

编辑
我应该提到,视图发现工作得很好,我可以
RegisterViewWithRegion
,但是当我检查
RegionManager
Regions
属性时,我发现它是空的

在思考这个问题及其发生的背景时,我突然意识到,就像软件中的大多数bug一样,问题并不在我所看到的地方

我的设置如下:我从Silverlight业务应用程序项目模板开始。这给了我一个
主页
,我用它作为我的
外壳
,还有一些视图(
主页
关于
)。现在,我不再让区域位于我的
Shell
,而是将它们放在
主页
视图中,将主页保持为母版页

我的观点是Prism为
Shell
设置了一个
RegionManager
,并将其传递给需要它的人(使用依赖项注入容器)。这样,当我在模块中要求使用
IRegionManager
时,我得到了
Shell
中的一个,它实际上不包含任何区域(因此是空的
Regions
属性)

为了解决这个问题,我所要做的就是把我的区域放在正确的位置:外壳,现在一切都很好

更新: 似乎我的“接受这一点”实际上是正确的:),这是摘自:(在作用域下)

定义具有附着属性的区域的视图将自动继承其父对象的RegionManager。通常,这是在shell窗口中注册的全局RegionManager


包含该区域的XAML是否定义了该区域的名称?当然可以(请参阅第一个代码段)
_regionManager.RegisterViewWithRegion("MainRegion", typeof(MyView));