2013-08-07 37 views
5

我無法在MEF2上找到任何好的示例。MEF2目錄如何工作?看起來它已被刪除

我想創建一個插件目錄並使用目錄編目來加載Imports。

我想什麼:

  1. 沒有屬性。使用帶有約定的配置生成器
  2. 插件目錄
  3. 當添加一個dll時,應用程序知道可用的新導出。

我可以使用Castle Windsor嗎?

+0

你有什麼試過?你爲什麼認爲DirectoryCatalog已被刪除?你是什​​麼意思,'沒有屬性'? '使用配置生成器'是什麼意思? – Matt

回答

1

與MEF2一起引入的慣例模型是對賦予模型的替代方案。兩種模型都可以共存於一個應用程序中。目錄有一個新的構造函數,它以ReflectionContext作爲參數。 RegisrationBuilder來自這個類。因此,您創建一個RegistrationBuilder,設置它,然後使用新的.ctors創建一個或多個目錄並將其作爲ReflectionContext傳遞。

看看這series of articles介紹MEF2功能。也看看這個introductory article from CodeProject

我還沒有使用過Castle Winsdor,所以我不能評論這個。

3

如果你指的是MEF available on nuget的新的Windows應用商店的版本,然後the documentation狀態,

沒有目錄的概念,也不構成批次,也沒有任何「容器層次」或組成作用域的API。

聽起來對於MEF 1開發者來說很瘋狂,但是這個頁面很好的解釋了理由。然而,您需要

  • 當DLL被添加的應用程序是瞭解現有的新出口。

這是MEF 2(運店)版本明確不可用,因爲它不支持重新構圖。 爲此,您需要.NET Framework中的「完整」MEF,位於System.ComponentModel.Composition