Wpf 哪个组件负责设置regionManager?

Wpf 哪个组件负责设置regionManager?,wpf,prism,unity-container,Wpf,Prism,Unity Container,哪个组件负责设置regionManager 我正在跟踪棱镜上的实践实验室 我想知道哪个组件正在设置regionManager?这是一种依赖注入模式;Unity框架(确切地说)正在设置regionManager。您可以在中的Prism.UnityExtensions\UnityBootTrapper.cs下看到代码: 在ConfigureContainer方法中: RegisterTypeIfMissing(typeof(IRegionManager), typeof(RegionManager

哪个组件负责设置regionManager

我正在跟踪棱镜上的实践实验室


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

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

ConfigureContainer
方法中:

RegisterTypeIfMissing(typeof(IRegionManager), typeof(RegionManager), true);
RegionManager.SetRegionManager(this.Shell, this.Container.Resolve<IRegionManager>());
运行
方法中:

RegisterTypeIfMissing(typeof(IRegionManager), typeof(RegionManager), true);
RegionManager.SetRegionManager(this.Shell, this.Container.Resolve<IRegionManager>());
RegionManager.SetRegionManager(this.Shell,this.Container.Resolve());
您会注意到,
HelloWorldModule
继承了
IModule
,IModule是Unity Prism接口,
UnityBookTrapper
将其实现注入到类中



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

除非我理解错误,否则“您会注意到HelloWorldModule继承了IModule,IModule是一个统一接口,用于处理允许将依赖项注入到类中的依赖项。“这并不完全正确。Prism作为其模块加载过程的一部分,使用Unity解析实现IModule的类,但IModule是Prism的一部分,Unity对它没有任何特殊的依赖关系。@DamianSchenkelman你说得绝对正确,
IModule
是一个Prism接口,而不是Unity
UnityBootstrapper
是连接
IModule
实现的类。