哪个组件负责设置regionManager?
我正在关注棱镜上的动手实验室 http://msdn.microsoft.com/en-us/library/ff921141(v=pandp.40).aspx
public HelloWorldModule(IRegionManager regionManager)
{
this.regionManager = regionManager;
}
我想知道哪个组件正在设置regionManager?
答案 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框架负责注入实际的实现。