引言
   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框架。

最新文章

  1. 初识sqoop
  2. Leetcode study time
  3. 1336 - Sigma Function---LightOj1336
  4. 为 MDS 修改 SharePoint 2013组件
  5. js中奇特的for循环写法
  6. EF 关系规则(一对一、一对多、多对多...)
  7. java使用ms-dos编译,运行程序
  8. Android MediaStore与Media.EXTERNAL_CONTENT_URI
  9. Java Executor 框架学习总结
  10. rsync+inotify实时同步方案
  11. c# datagridview 设置某行不可见解决办法
  12. UWP appButtonBar样式
  13. PTA題目的處理(二)
  14. Ocelot中文文档-不支持
  15. [转载]Fiddler 解析!抓包抓得好真的可以为所欲为 [一]
  16. C#获取一个数组中的最大值、最小值、平均值
  17. MVC与单元测试实践之健身网站(八)-统计分析
  18. Salty Fish 结对学习心得体会及创意照 (20165211 20165208)
  19. WKWebView中HTML5获取位置失败
  20. 通用型正方教务(通杀各版本)存在注入(不需登陆)+获得webshell+提权内网漫游

热门文章

  1. Keras网络层之“关于Keras的层(Layer)”
  2. 004-Set 和 Map 数据结构
  3. pyplot基本绘制
  4. __BEGIN_DECLS __END_DECLS
  5. nfs服务、crond服务
  6. s5_day13作业
  7. 【leetcode刷题笔记】Majority Element
  8. Python3:Django连接Mysql数据库时出错,&#39;Did you install mysqlclient or MySQL-python?&#39;
  9. 20145217《网络对抗》 逆向及BOF进阶实践学习总结
  10. Hibernate 菜鸟教程 异常 集锦