【MAF】MAF插件框架简介
2024-09-07 03:30:28
引言
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 > )
{
AddInToken token = printerTokens.FirstOrDefault(x => x.Name == "PrinterAddIn");
if (token != null)
{
PrinterAddIn = token.Activate<HostView.PrinterHostView>( AddInSecurityLevel.FullTrust); } }
可以监控ProcessId是否存在,来判断插件是否奔溃了.
小结
MAF框架可以实现物理隔离,但相对来说结构变复杂了,如果不需要物理隔离,可以采用MEF框架。
最新文章
- 初识sqoop
- Leetcode study time
- 1336 - Sigma Function---LightOj1336
- 为 MDS 修改 SharePoint 2013组件
- js中奇特的for循环写法
- EF 关系规则(一对一、一对多、多对多...)
- java使用ms-dos编译,运行程序
- Android MediaStore与Media.EXTERNAL_CONTENT_URI
- Java Executor 框架学习总结
- rsync+inotify实时同步方案
- c# datagridview 设置某行不可见解决办法
- UWP appButtonBar样式
- PTA題目的處理(二)
- Ocelot中文文档-不支持
- [转载]Fiddler 解析!抓包抓得好真的可以为所欲为 [一]
- C#获取一个数组中的最大值、最小值、平均值
- MVC与单元测试实践之健身网站(八)-统计分析
- Salty Fish 结对学习心得体会及创意照 (20165211 20165208)
- WKWebView中HTML5获取位置失败
- 通用型正方教务(通杀各版本)存在注入(不需登陆)+获得webshell+提权内网漫游
热门文章
- Keras网络层之“关于Keras的层(Layer)”
- 004-Set 和 Map 数据结构
- pyplot基本绘制
- __BEGIN_DECLS __END_DECLS
- nfs服务、crond服务
- s5_day13作业
- 【leetcode刷题笔记】Majority Element
- Python3:Django连接Mysql数据库时出错,&#39;Did you install mysqlclient or MySQL-python?&#39;
- 20145217《网络对抗》 逆向及BOF进阶实践学习总结
- Hibernate 菜鸟教程 异常 集锦