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)