哪个组件负责设置regionManager?

时间:2012-09-23 00:46:17

标签: wpf prism unity-container

哪个组件负责设置regionManager?

我正在关注棱镜上的动手实验室 http://msdn.microsoft.com/en-us/library/ff921141(v=pandp.40).aspx

public HelloWorldModule(IRegionManager regionManager)
    {
        this.regionManager = regionManager;
    }

我想知道哪个组件正在设置regionManager?

1 个答案:

答案 0 :(得分:2)

这是依赖注入模式; Unity框架(确切地说UnityBootstrapper)设置regionManager。您可以在Prism download中的 Prism.UnityExtensions \ UnityBootstrapper.cs 下看到代码:

ConfigureContainer方法中:

RegisterTypeIfMissing(typeof(IRegionManager), typeof(RegionManager), true);

Run方法中:

RegionManager.SetRegionManager(this.Shell, this.Container.Resolve<IRegionManager>());

你会注意到HelloWorldModule继承IModule这是 Unity Prism接口,其UnityBootstrapper的实现注入到类中。


如果您不熟悉依赖注入,这是它的经典模式;一个类通过其构造函数请求任何外部依赖项(在本例中为 IRegionViewRegistry ),DI框架负责注入实际的实现。