Prism框架-module模块使用

一、Prism框架对于module的引用,建立了一套解决方案机制

二、使用方式

1.需要在建立module的时候,建立一个类似App.xaml.cs的文件,ModuleAProfile.cs文件(文件名随便起),继承Imodule接口,并实现注册功能;

这个主要是将要显示的页面注册上。

 1     public class ModuleAProfile : IModule
 2     {
 3         public void OnInitialized(IContainerProvider containerProvider)
 4         {
 5 
 6         }
 7 
 8         public void RegisterTypes(IContainerRegistry containerRegistry)
 9         {            
10             containerRegistry.RegisterForNavigation<ViewA>(); // 确保已添加Prism.Regions命名空间
11         }
12     }

2.在解决方案中,添加modules文件夹,用于存储dll文件,并将dll文件的‘复制到输出目录’属性改为“始终复制”

3.在App.xaml.cs文件中注册modules,

1         protected override IModuleCatalog CreateModuleCatalog()
2         {
3 
4             return new DirectoryModuleCatalog() { ModulePath= @".\Modules"};
5         }

代码解释:

代码功能

这段代码定义了一个方法 CreateModuleCatalog(),它是一个重写的方法,返回一个 IModuleCatalog 类型的对象。IModuleCatalog 是 Prism 框架中用于管理模块的一个接口。

关键点解释

  1. DirectoryModuleCatalog
    • 这是 IModuleCatalog 的一个实现类,它会从指定的目录中加载模块。
    • 它会扫描指定路径下的程序集(DLL 文件),并加载其中的模块。
  2. ModulePath 属性:
    • 这是 DirectoryModuleCatalog 的一个属性,用于指定模块所在的路径。
    • 在你的代码中,ModulePath 被设置为 ".\Modules",这意味着模块目录位于应用程序的当前工作目录下的 Modules 文件夹中。
  3. @".\Modules"
    • @ 符号表示字符串是逐字解释的,不会将反斜杠 \ 视为转义字符。
    • .\Modules 表示当前目录下的 Modules 文件夹。

使用场景

这段代码通常用于模块化应用程序的启动阶段,用于动态加载模块。模块化设计可以将应用程序的功能划分为独立的模块,每个模块可以独立开发、测试和部署。通过这种方式,可以提高应用程序的可维护性和可扩展性。
 
4.其他的使用,在Xaml文件中编写,和区域的导航功能类似
posted @ 2025-02-21 16:14  行走的小猫  阅读(237)  评论(0)    收藏  举报