0

which component is responsible for setting regionManager?

I am following the hands-on lab on prism on http://msdn.microsoft.com/en-us/library/ff921141(v=pandp.40).aspx

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

I am wondering which component is setting regionManager?

4

1 回答 1

2

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

ConfigureContainer方法中:

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

Run方法中:

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

您会注意到HelloWorldModule继承IModuleUnity Prism 接口,其实现UnityBootstrapper注入到类中。


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

于 2012-09-23T01:37:23.460 回答