2012-09-23 52 views

回答

2

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

在方法:

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

而在Run方法:

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

你”我会注意到HelloWorldModule继承IModule这是 Unity棱镜interfac e其实施UnityBootstrapper注入班级。


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

+0

除非我理解不正确,否则以下“你会注意到HelloWorldModule继承了IModule,它是处理的Unity接口允许依赖被注入到类中。”并不完全正确。作为模块加载过程的一部分,棱镜使用Unity来解析实现IModule的类,但IModule是Prism的一部分,Unity对它没有任何特别的依赖。 –

+0

@DamianSchenkelman你说得对,'IModule'是一个Prism接口,不是Unity。 'UnityBootstrapper'是连接'IModule'实现的类。 – McGarnagle