MEF 是一个使开发人员可以建立“插件式应用程序”的技术,这里的“插件”是指在应用程序部署后开发人员可以经过开发“插件”来扩展应用程序功能。但不一样之处是使用MEF框架您在系统设计阶段不须要考虑在应用程序部署后可能会有什么插件,MEF能够自动搜索这些插件。这也是为何会叫他Managed Extensibility Framework。json
一个简单的MEF示例,数据结构
假设系统中有以下需求
支付功能: 用户能够选择多种支付方式进行支付如支付宝,网银在线,财付通等等。 框架
1. 定义支付接口及支付请求数据结构函数
2. 定义插件接口及插件元数据(用于标识插件信息).net
3. 添加获取支付插件方法, 修改支付函数使支付支持多种支付方式插件
4.使用MEF实现支付接口debug
5. 编写第一个支付插件设计
6. 使用MEF容器注册插件xml
7. 目前系统中可用的插件只有“支付宝支付插件”,若是咱们想添加一个新的网银在线插件blog
8. 插件元数据的定义:
9. 使用插件/刷新插件
总结,MEF仍是挺适合作.net程序的插件框架,使用MEF作插件主要有下面几个好处:
相关资源
MEF 主页, MSDN 文档, MSDN 杂志 MEF vs IoC, .NET 4.0 MEF FAQ (Socket, Plug and extension)