【MAF】MAF插件框架简介
引言
Managed Add-In Framework是一个插件式框架。它有两大作用,一个是解耦,插件和宿主由7个管道组成,两边都有适配器Adapter管道,能最大程度地降低插件和宿主的耦合度;一个是物理隔离,可以有程序域隔离和进程隔离,插件崩溃了不会搞挂宿主。
资料
具体的介绍和用法两本书有比较详细的介绍,如下
《C#高级编程(第七版)》 50章MAF
《WPF编程宝典》 32章插件模型
注意
基本用法上面两个书都有,但是需要注意的是接口参数不能用枚举,不然会出错。
还有的话,就是进程隔离的调用方式如下
_addInProcess = new AddInProcess();_addInProcess.KeepAlive = true;_addInProcess.Start();_process = _addInProcess.ProcessId;string path = Environment.CurrentDirectory;AddInStore.Update(path);IList<AddInToken> printerTokens = AddInStore.FindAddIns(typeof(HostView.PrinterHostView), path);if (printerTokens.Count > 0){AddInToken token = printerTokens.FirstOrDefault(x => x.Name == "PrinterAddIn");if (token != null){PrinterAddIn = token.Activate<HostView.PrinterHostView>( AddInSecurityLevel.FullTrust);}}
可以监控ProcessId是否存在,来判断插件是否奔溃了.
小结
MAF框架可以实现物理隔离,但相对来说结构变复杂了,如果不需要物理隔离,可以采用MEF框架。
转载于:https://www.cnblogs.com/caizl/p/5422359.html
【MAF】MAF插件框架简介相关推荐
- Java开源——常见J2EE框架简介
Java开源--常见J2EE框架简介 Spring Framework Spring是一个解决了许多在J2EE开发中常见的问题的强大框架. Spring提供了管理业务对象的一致方法并且鼓励了注入对接口 ...
- 【Android 插件化】插件化简介 ( 组件化与插件化 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- (2)从实际项目谈起,基于MEF的插件框架之总体设计
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.MEF框架简介 MEF的全称是Managed Extensibil ...
- hdwiki 框架简介
虽然HDwiki是一个开源的wiki系统,并且代码简洁易懂,但如果想在系统上做做进一步开发还需要对框架有一个整体的认识.熟悉了HDwiki的框架以后完全可以独立出来做其他功能的开发,当做一个开源的PH ...
- 分布式电商项目十四:Vue前端框架简介及使用
Vue前端框架简介及使用 就像是后端我们使用springboot来进行开发一样,前端需要使用Vue框架进行开发.由于前端不是我们的主要内容,所以只介绍简单的使用内容.具体更深的内容请参考Vue的官方网 ...
- 腾讯零反射全动态Android插件框架Shadow解析
简介 最近几年,腾讯对于开源事业也是越来越支持,今天要说的就是在腾讯被广泛使用的Shadow框架,一个经过线上亿级用户量检验的反射全动态Android插件框架. 首先,让我们来看一下官方对于Shado ...
- Java轻量级的插件框架PF4J的使用教程
一.简介 PF4J是一个Java轻量级的插件框架,可以实现动态加载,执行,卸载外部插件(支持jar以及zip),具体可以看官网:https://pf4j.org/. 本文例子基于Github地址:ht ...
- delphi源码三层框架【框架简介】
一,框架简介 1,本套源码主要是用来开发企业应用系统如:erp ,mes,hrms,进销存等制造业内部应用系统:跟网上 常见的delphi中间件相比,功能更丰富,开发便捷.若用来开发一些几千上万的高并 ...
- Android插件化原理和实践 (一) 之 插件化简介和基本原理简述
1 插件化简介 Android插件化技术是一种这几年间非常火爆的技术,也是只有在中国才流行起来的技术,这几年间每每开发者大会上几乎都会提起关于插件化技术和相关方向.在国内各大互联网公司无不都有自己的插 ...
最新文章
- 【仿汽车之家】价格区间选择控件
- 运维面试经验总结(1)
- python 高级使用实例_Python中的高级函数map/reduce使用实例
- Android视频播放之VideoView
- 《娱乐至死》读书笔记(part5)--那些想当上帝的人把自己塑造成观众期望的形象
- yy自动语音接待机器人_人脸签到、发言记录,会议机器人来啦
- 江苏省专转本计算机题知识点,江苏专转本计算机真题17
- 3W+字的设计模式手册
- 2017-11-14【Python】爬虫练习
- poj 3979 分数加减法
- hdu 4315 Climbing the Hill 博弈问题,可转化为nim游戏问题,多校联合赛(二)第六题
- 不同版本web.xml文件头声明
- 年度读书总结:宏观经济学系列
- php显示某年某月某日,C++_C++自定义函数判断某年某月某日是这一年中第几天,本文实例讲述了C++自定义函数 - phpStudy...
- JQuery属性选择器
- JAVA面试题2012(1)
- System.Data.SqlClient.SqlError: 备份集中的数据库备份与现有的 '***' 数据库不同。 (Microsoft.SqlServer.Smo)
- word/论文版本管理方案
- mac安装adb报错Unknown command: cask
- 阿里云李克:阿里云边缘云计算的技术和实践