2009-12-24 60 views
3

Managed Extensibility Framework既是一個獨立項目(當前面向.NET 3.5),也是.NET 4.0框架的一部分。將面向.NET 3.5的MEF部件與面向.NET 4.0的應用程序混合使用

假設我創建了包含MEF部件的.NET 3.5的組件。這些程序集將引用System.ComponentModel.Composition.dll的獨立版本。

現在假設我創建了一個支持.NET 4.0的啓用MEF的應用程序。此應用程序將引用.NET 4.0框架附帶的System.ComponentModel.Composition.dll。我能在這個應用程序中使用上述的MEF部件嗎?

回答

9

不幸的是,這是行不通的,因爲你的3.5版本的System.ComponentModel.Composition.dll只能通過構建codeplex drop而產生,並且沒有使用與官方4.0版本相同的密鑰簽名,所以CLR將會加載這兩個程序集並將屬性視爲兩個不同的屬性。因此,假定應用程序使用System.ComponentModel.Compsition.dll的.Net 4.0版本並構建目錄/容器,它將只能找到用.Net 4.0版本標記屬性的部分。

相關問題