最终效果:

两个插件时:

删掉一个插件时:

代码下载地址:https://download.csdn.net/download/qq_36663276/10916071

概述:
每个插件类库各从自定义的IVisualMetadata接口实现一个新类,该类标记了该插件的唯一ID、标题、Tab中的序号、根视图等信息。每个插件库都有生成事件,在生成结束后将自身复制到主程序的Plugins目录下;
主程序启动时,动态读取Plugins目录中的dll,反射获取dll中实现了IVisualMetadata接口的方法,并将插件加入运行时程序集中。
主程序再根据插件集合生成Tab页。点击时激活根视图

类库与主程序之间没有引用关系,通过事件聚合器来广播消息。

项目结构:

在WPF中使用Caliburn.Micro搭建MEF插件化开发框架相关推荐

  1. C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅

    01 - 前言 处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Caliburn提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间 ...

  2. PyCharm中的pyqt-designer环境搭建和汉化

    pyqt-designer环境搭建: 1.安装pyqt5.pyqt-tools依赖包 2.打开pycharm,菜单栏File->Settings... 3.在打开的Settings窗口中,Too ...

  3. C# WPF MVVM开发框架Caliburn.Micro自定义引导程序④

    01 - 自定义引导程序 在上一部分中,我们讨论了Caliburn.Micro WPF应用程序的最基本配置,并演示了与操作和约定相关的两个简单功能.在这一部分中,我想进一步探讨Bootstrapper ...

  4. Illusion = Caliburn.Micro + MEF

    前言 准备使用Caliburn.Micro结合MEF写一个类似于VS2010的IDE框架,支持插件开发,Menu.Toolbar等的可配置性,还有一些功能如:Option,多语言,换肤等.一方面作为技 ...

  5. 【Android 插件化】Hook 插件化框架 ( 合并 “插件包“ 与 “宿主“ 中的 Element[] dexElements | 设置合并后的 Element[] 数组 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  6. 【Android 插件化】Hook 插件化框架 ( 通过反射获取 “宿主“ 应用中的 Element[] dexElements )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  7. C# WPF MVVM开发框架Caliburn.Micro快速搭建③

    01 - 启动项目 打开Visual Studio 创建一个名为"Caliburn.Micro.Hello"的新WPF应用程序 添加对Caliburn.Micro Nuget包的引 ...

  8. C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面

    01 - 前言 MEF是微软自家的托管可扩展框架,在这里我把它用成了ioc容器.在Caliburn.Micro框架下,view和viewmodel被注入到CompositionContainer容器中 ...

  9. C# WPF框架Caliburn.Micro快速搭建

    1. Caliburn是什么? Caliburn是Rob Eisenberg在2009年1月26日(Rob's MIX10 talk "Build Your Own MVVM Framewo ...

最新文章

  1. BinaryTree-学习二叉树的Python库
  2. 临渊羡鱼,不如退而结网
  3. 常见Java面试题 – 第二部分:equals与==
  4. 送给水深火热的 Gopher 们的解药
  5. 6个实例详解如何把if-else代码重构成高质量代码
  6. DC/OS 的安装与部署
  7. vue动态加载静态资源
  8. mysql Subqueries
  9. [django]list_display 中包含外键内的字段
  10. Vue2.0 之 自带浏览器里无法打开(兼容IE处理) - 解决方案 命令
  11. GitLab CTO:开源是打造优秀软件的核心
  12. In static memberfunction
  13. spring-boot-route(十九)spring-boot-admin监控服务
  14. labview如何安装modbus离线模块_Chrome73如何下载和安装扩展离线文件crx
  15. maven命令行打包
  16. Windows系统以及office等一键激活
  17. oracle集群如何搭建,Oracle集群搭建步骤.docx
  18. Oracle+ogg-00664,OGG采用NET8方式读取ASM中日志报OGG-00664(ORA-12162),配置如下:
  19. vue项目项目启动步骤及常见错误处理
  20. excel怎么合并同类项数据并求和(去除重复项)

热门文章

  1. 阿里云张新涛:连接产业上下游,构建XR协作生态
  2. jQuery实现点击图片放大,鼠标滑轮控制缩放
  3. MSDN网站 浏览器打不开
  4. 美国2016-2045新科技趋势报告
  5. 进程、线程间的几种通信方式
  6. 【数据挖掘】利用sklearn进行数据预处理讲解与实战(超详细 附源码)
  7. Python 递归函数怎么写?
  8. Java 性能监控和调优
  9. 盾构、TBM、掘进机有哪些区别与相似之处?
  10. 【虚拟机装黑苹果(第二弹)】Win10/macOS环境下制作黑苹果安装U盘(能被Vmware虚拟机识别)