MEF程式設計指南一 在應用程式中宿主MEF

2021-08-25 07:02:14 字數 1681 閱讀 9002

在應用程式中宿主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

ibookserviceservice

//////宿主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其實非常簡單,只需要建立乙個組合容器物件 compositioncontainer 的例項,然後將需要組合的部件 parts 和當前宿主程式新增到容器中即可。首先需要新增mef框架的引用,既system.componentmodel.composition.dll,詳細如下 塊...

MEF系列一 應用程式中的宿主MEF

在應用程式中宿主mef包含建立組合容器物件 compositioncontainer 向組合容器物件新增可組合部件 parts 包含應用程式宿主本身,最後進行組合。下面是關於宿主的步驟 1 建立乙個宿主類,在本例中我們使用乙個控制台程式,所以宿主就是program類。2 新增引用 system.co...

一 在應用程式自定義訊息方法

一 在應用程式自定義訊息方法 一般自定義訊息有一定的範圍,雖然說自定義訊息從wm user開始,但是由於我們的工程裡面一般還有很多其他的控制項,他們也要占用一部分wm user訊息範圍,所以我們必須為他們留出一部分範圍,這裡,我們保留100個訊息,一般情況下,這可以滿足我們的要求。1 定義訊息的值。...