在應用程式中宿主MEF

2021-09-03 04:28:11 字數 1702 閱讀 4820

在應用程式中宿主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的初始化,如下 初始化...