在WPF中使用Caliburn.Micro搭建MEF插件化开发框架
最终效果:
两个插件时:
删掉一个插件时:
代码下载地址:https://download.csdn.net/download/qq_36663276/10916071
概述:
每个插件类库各从自定义的IVisualMetadata接口实现一个新类,该类标记了该插件的唯一ID、标题、Tab中的序号、根视图等信息。每个插件库都有生成事件,在生成结束后将自身复制到主程序的Plugins目录下;
主程序启动时,动态读取Plugins目录中的dll,反射获取dll中实现了IVisualMetadata接口的方法,并将插件加入运行时程序集中。
主程序再根据插件集合生成Tab页。点击时激活根视图
类库与主程序之间没有引用关系,通过事件聚合器来广播消息。
项目结构:
在WPF中使用Caliburn.Micro搭建MEF插件化开发框架相关推荐
- C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅
01 - 前言 处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Caliburn提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间 ...
- PyCharm中的pyqt-designer环境搭建和汉化
pyqt-designer环境搭建: 1.安装pyqt5.pyqt-tools依赖包 2.打开pycharm,菜单栏File->Settings... 3.在打开的Settings窗口中,Too ...
- C# WPF MVVM开发框架Caliburn.Micro自定义引导程序④
01 - 自定义引导程序 在上一部分中,我们讨论了Caliburn.Micro WPF应用程序的最基本配置,并演示了与操作和约定相关的两个简单功能.在这一部分中,我想进一步探讨Bootstrapper ...
- Illusion = Caliburn.Micro + MEF
前言 准备使用Caliburn.Micro结合MEF写一个类似于VS2010的IDE框架,支持插件开发,Menu.Toolbar等的可配置性,还有一些功能如:Option,多语言,换肤等.一方面作为技 ...
- 【Android 插件化】Hook 插件化框架 ( 合并 “插件包“ 与 “宿主“ 中的 Element[] dexElements | 设置合并后的 Element[] 数组 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- 【Android 插件化】Hook 插件化框架 ( 通过反射获取 “宿主“ 应用中的 Element[] dexElements )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- C# WPF MVVM开发框架Caliburn.Micro快速搭建③
01 - 启动项目 打开Visual Studio 创建一个名为"Caliburn.Micro.Hello"的新WPF应用程序 添加对Caliburn.Micro Nuget包的引 ...
- C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面
01 - 前言 MEF是微软自家的托管可扩展框架,在这里我把它用成了ioc容器.在Caliburn.Micro框架下,view和viewmodel被注入到CompositionContainer容器中 ...
- C# WPF框架Caliburn.Micro快速搭建
1. Caliburn是什么? Caliburn是Rob Eisenberg在2009年1月26日(Rob's MIX10 talk "Build Your Own MVVM Framewo ...
最新文章
- BinaryTree-学习二叉树的Python库
- 临渊羡鱼,不如退而结网
- 常见Java面试题 – 第二部分:equals与==
- 送给水深火热的 Gopher 们的解药
- 6个实例详解如何把if-else代码重构成高质量代码
- DC/OS 的安装与部署
- vue动态加载静态资源
- mysql Subqueries
- [django]list_display 中包含外键内的字段
- Vue2.0 之 自带浏览器里无法打开(兼容IE处理) - 解决方案 命令
- GitLab CTO:开源是打造优秀软件的核心
- In static memberfunction
- spring-boot-route(十九)spring-boot-admin监控服务
- labview如何安装modbus离线模块_Chrome73如何下载和安装扩展离线文件crx
- maven命令行打包
- Windows系统以及office等一键激活
- oracle集群如何搭建,Oracle集群搭建步骤.docx
- Oracle+ogg-00664,OGG采用NET8方式读取ASM中日志报OGG-00664(ORA-12162),配置如下:
- vue项目项目启动步骤及常见错误处理
- excel怎么合并同类项数据并求和(去除重复项)