WPF模块化 WPF目录结构如下其中PrismModule调用ModuleA进行窗体显示首先Module类要实现IModule接口(需要引用Prism.Core模块)其实主项目要注册Module类有以下4种方式引用第1种PrismModule直接项目引用ModuleA,在ConfigureModuleCatalog中注册Module代码如下protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog) { moduleCatalog.AddModuleAModule(); } 或 protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog) { Type type typeof(AModule); moduleCatalog.AddModule(new ModuleInfo { ModuleName type.Name, ModuleType type.AssemblyQualifiedName, InitializationMode InitializationMode.OnDemand//OnDemand表示按需加载WhenAvailable表示启动时加载 }); }第2种使用App.config注册module第一步App.conf中声明module?xml version1.0 encodingutf-8 ? configuration configSections section namemodules typePrism.Modularity.ModulesConfigurationSection,Prism.Wpf / /configSections modules module assemblyFileZhaoXi.PrismModule.ModuleA.dll moduleNameAModule moduleTypeZhaoXi.PrismModule.ModuleA.AModule, ZhaoXi.PrismModule.ModuleA, Version1.0.0.0, Cultureneutral, PublicKeyTokennull /module /modules /configuration第2步代码中进行App加载protected override IModuleCatalog CreateModuleCatalog() { return new ConfigurationModuleCatalog(); }第3种使用xml注册module(这种最鸡肋,除了xml中声明Module还要项目引用module)第一步随便新建一个xml声明Module内容如下?xml version1.0 encodingutf-8 ? p:ModuleCatalog xmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentation xmlns:xhttp://schemas.microsoft.com/winfx/2006/xaml xmlns:pclr-namespace:Prism.Modularity;assemblyPrism.Wpf p:ModuleInfo ModuleNameAModule ModuleTypeZhaoXi.PrismModule.ModuleA.AModule, ZhaoXi.PrismModule.ModuleA, Version1.0.0.0, Cultureneutral, PublicKeyTokennull /p:ModuleInfo /p:ModuleCatalog注意新建的XML必须设置【复制到输出目录】为【不复制】【生成操作】为资源。第二步引用模块第三步代码中进行Xml加载模块protected override IModuleCatalog CreateModuleCatalog() { return new XamlModuleCatalog(.\\ModuleConfig.xml); }第4种自动扫描(这种最简单方便)第一步在Debug下新建文件夹ModulePath(文件名随便)第二步声明这个目录下的模块自动引用以后有模块加进来只要往这个目录丢会自动注册protected override IModuleCatalog CreateModuleCatalog(){return new DirectoryModuleCatalog() { ModulePath .\Modules };}小技巧1如果想每次生成的Module的dll自动更新到启动项目的目录下可以在Module的生成后事件中加入以下命令xcopy $(TargetPath) $(SolutionDir)Zhaoxi.PrismModule\bin\Debug\net7.0-windows\$(TargetFileName) /y小技巧2设置Module懒加载prism模块划分可以看功能划分Module,也可以按公共服务Module、业务逻辑Module,UI的Module.

相关新闻

最新新闻

大学生AI预测引擎项目解析:从Vibe Coding到Streamlit部署

大学生AI预测引擎项目解析:从Vibe Coding到Streamlit部署

1. 项目背景与现象解析2023年GitHub全球趋势榜上出现了一个令人惊讶的现象:一个名为"AI预测引擎"的大学生项目,在短短十天内两次登顶全球热门榜首。这个由单人开发的项目Star数在48小时内突破5000,Forks超过800次,成为当…

2026/7/22 14:07:45
深入解析TI EMAC/MDIO核心寄存器:RXnFREEBUFFER与MACCONTROL实战配置

深入解析TI EMAC/MDIO核心寄存器:RXnFREEBUFFER与MACCONTROL实战配置

1. 项目概述与核心价值在嵌入式网络开发领域,尤其是基于TI(德州仪器)Cortex-A或DSP平台的工程师,几乎都绕不开一个核心模块:EMAC/MDIO。这个模块是片上系统(SoC)与外部物理层(PHY&am…

2026/7/22 14:07:45
Mask2Former:统一图像分割任务的Transformer架构解析

Mask2Former:统一图像分割任务的Transformer架构解析

1. 项目概述:Mask2Former的革新价值 Mask2Former作为2022年Facebook AI Research提出的通用图像分割架构,彻底改变了传统分割任务的范式。我在实际部署中发现,其核心创新在于将实例分割、语义分割和全景分割三大任务统一为"掩码分类&quo…

2026/7/22 14:07:45
AI如何重塑学术写作全流程效率

AI如何重塑学术写作全流程效率

1. 学术写作智能化的时代机遇去年帮导师审稿时遇到一篇让我印象深刻的论文——作者在致谢部分专门感谢了AI写作助手帮其节省了200小时文献处理时间。这让我意识到,学术写作领域正在经历一场静默的革命。如今市面上的AI写作工具早已超越简单的语法检查,它…

2026/7/22 14:07:45
SketchUp Pro 草图大师(2017~2025)

SketchUp Pro 草图大师(2017~2025)

SketchUp Pro,也称草图大师。这是一款很受欢迎的3D模型之一,官方将它比喻作电子设计中的“铅笔”,其主要特点就是使用快速、可靠、有趣。设计师们可以在很短的时间完成大型的3D设计,兼容和扩展性很好,可以与3ds Max、 …

2026/7/22 14:07:45
AI一站式设计工作流落地实战:从需求输入到交付输出,93%企业忽略的3个断点修复法

AI一站式设计工作流落地实战:从需求输入到交付输出,93%企业忽略的3个断点修复法

更多请点击: https://kaifayun.com 第一章:AI一站式设计工作流落地实战:从需求输入到交付输出,93%企业忽略的3个断点修复法 在AI驱动的设计工作流实践中,多数企业将注意力集中在模型选型与UI界面搭建上,却…

2026/7/22 14:02:45

月新闻