2012-07-29 48 views
0

我學習棱鏡框架和MEF如何與它集成......我在看與棱鏡來作爲例子,「StockTraderRI」演示解決方案...在棱鏡中,當使用MEF時,[Export]究竟做了什麼?

當使用[出口]屬性上的視圖模型如此:[導出(typeof運算(TrendLineViewModel))]

是否MEF在其內部結構中的一個創建它們的列表,以便當它被導入像這樣: [導入] TrendLineViewModel視圖模型 它可以位於?

的樣子的視圖的導出是做類似的東西: [ViewExport(RegionName = RegionNames.ResearchRegion)]

,然後將其在AutoPopulateExportedViewsBehavior方法用於注入在各區域的觀點..是這正確嗎?

由於 哈羅德

回答

1

當穿上類型「屬性」(方括號的東西),要連接的「元數據」,以該類型可以在運行時通過使用反射來發現。

當你配置MEF時,你給它一個Catalog,告訴它它應該掃描哪些程序集的[Import]和[Export]元數據屬性。例如,DirectoryCatalog將使MEF掃描特定目錄中的一組程序集/ DLL。

當您要求創建/組合的類型時,它知道如何解決該部分的創建,即匹配具有相同合同的[導入]和[導出]。