Prism入门之模块(Module)
2021/8/16 23:06:45
本文主要是介绍Prism入门之模块(Module),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
通过约定的方式去约束它,Prism通过约定俗成的定义去查找他
一、创建模块项目
1、首先创建WPF项目,再将里面的默认文件删掉并将项目输出类型更改为类库
2、接着创建模块的配置文件,做法类似于MEF/MAF框架(用于设计模块化项目的框架)这里不详细展开细说。
安装Prism.Droc包
3、完事需要在该配置文件中继承IModule,并实现所需接口
4、还需要像在App.cs中一样在RegisterTypes方法中注册视图
RegisterTypes(IContainerRegistry containerRegistry) { containerRegistry.RegisterForNavigation<ViewA>(); }
ModuleB也同样如法炮制
二、在宿主程序中添加刚才创建的模块
1、重写ConfigureModuleCatalog方法,使用IModuleCatalog添加模块
protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog) { moduleCatalog.AddModule<ModuleAProfile>(); moduleCatalog.AddModule<ModuleBProfile>(); base.ConfigureModuleCatalog(moduleCatalog); }
运行效果:
通过上面我们可以发现一个弊端,就是宿主程序与模块之间有强引用关系,我们在ConfigureModuleCatalog函数中通过AddModule将模块A或B中的配置文件加载了进去,一旦需要移除或添加新的模块肯定需要改动代码。我们可以通过一定的约束,通过路径去找到某个路径下的模块添加进去。
三、通过文件夹加载模块
我们只需要在App.cs中重写Prism框架中的CreateModuleCatalog方法,返回一个路径,框架本身会通过约定俗成的约定去查找模块
protected override IModuleCatalog CreateModuleCatalog() { return new DirectoryModuleCatalog() { ModulePath = @".\Modules" }; }
在生产环境中更推荐使用后面这种方式去使用模块
这篇关于Prism入门之模块(Module)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略