在應用程式中宿主mef其實非常簡單,只需要建立乙個組合容器物件(compositioncontainer)的例項,然後將需要組合的部件(parts)和當前宿主程式新增到容器中即可。首先需要新增mef框架的引用,既system.componentmodel.composition.dll,詳細如下**塊:
private
void
compose()
通過上面的**實現就可以完成mef的宿主,實際上在使用mef的開發過程中並不會如此簡單的應用。可能會定義乙個或多個匯入(import)和匯出(export)部件,然後通過mef容器進行組合,其實也可以理解為「依賴注入」的一種實現。比如定義乙個圖書介面和乙個介面的實現類,在此基礎上使用mef的匯入匯出特性:
public
inte***ce
ibookservice
//////
匯入///
[export(
typeof
(ibookservice))]
public
class
computerbookservice : ibookservice}
如上**通過使用mef的[system.componentmodel.composition.export]對介面的實現進行匯出設定,讓介面的實現以容器部件的方式存在,然後通過組合容器進行裝配載入,這個過程中就包括了介面的例項化的過程。接下來就需要在mef的宿主程式中定義乙個介面的屬性,並為其標註[system.componentmodel.composition.import]特性以實現介面實現類的匯入。如下**塊:
//////匯入介面的實現部件(part)
///
[import]
public
ibookservice service
//////
宿主mef並組合部件
///
private
void
compose()
using
system;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.componentmodel.composition;
using
system.componentmodel.composition.hosting;
using
system.reflection;
namespace
hostingmef
//////
匯入///
[export(
typeof
(ibookservice))]
public
class
computerbookservice : ibookservice
}class
program
//////
宿主mef並組合部件
///
private
void
compose()
static
void
main(
string
args)}}
注:本文參考
,詳細請大家閱讀原文。
mef官方**:
MEF程式設計指南一 在應用程式中宿主MEF
在應用程式中宿主mef其實非常簡單,只需要建立乙個組合容器物件 compositioncontainer 的例項,然後將需要組合的部件 parts 和當前宿主程式新增到容器中即可。首先需要新增mef框架的引用,既system.componentmodel.composition.dll,詳細如下 塊...
MEF系列一 應用程式中的宿主MEF
在應用程式中宿主mef包含建立組合容器物件 compositioncontainer 向組合容器物件新增可組合部件 parts 包含應用程式宿主本身,最後進行組合。下面是關於宿主的步驟 1 建立乙個宿主類,在本例中我們使用乙個控制台程式,所以宿主就是program類。2 新增引用 system.co...
MEF在WebApi中應用
1.mef在mvc中和在webapi中的初始化,是用區別的,他們分別實現的介面如下 webapi需要實現的介面 mvc需要實現的介面 system.web.mvc.idependencyresolver 2.mef的 如下 3.在webapiconfig.cs檔案中,設定mef的初始化,如下 初始化...