2
是否可以從導入的MEF函數中獲取程序集信息?我需要知道包含該函數的組件版本和插件控件的名稱。嘗試了以下,但它只是返回System.ComponentModel.Composition版本。如何獲取導入的MEF函數的彙編信息?
foreach (Lazy<Func<int>, IMetadata> func in PluginFuncs)
{
// get assembly information of the Plugin control for the imported function
string version = func.GetType().Assembly.GetName().Version.ToString();
Console.WriteLine(version);
}
另一種方法是在元數據中使用硬編碼值,但我認爲這是不可維護的。當版本改變時,很容易忘記更改這些值。
感謝您的建議,但現在它返回mscorlib的版本。還有什麼想法? – 2010-09-30 16:02:22
@John_Sheares:哦,該死的 - 這很有道理 - Func是System.Func ... mmm ...讓我想想 –
2010-09-30 16:10:54
@John_Sheares:我相信上面現在可以工作。通過分配給委託,可以通過Delegate.Method中返回的MethodInfo來獲取定義方法的類型。 – 2010-09-30 16:16:43