我有一个使用 MEF 加载扩展的应用程序,我希望能够在MEF 实际加载扩展之前检索(程序集)版本信息。我相信如果程序集信息嵌入到扩展的元数据中,这是可以做到的。不幸的是,元数据似乎只接受设计时间常数值。也许有人可以告诉我别的?
理想情况下,我希望能够声明类似于以下的元数据:
[Export(typeof(IExtension))]
[ExportMetadata("Description", "Spell Checker")]
[ExportMetadata("AssemblyVersionInformation", "???????")]
public class MyExtension : IExtension
{
...
}
我的元数据接口定义为:
public interface IExtensionMetadata
{
string Description { get; }
string AssemblyVersionInformation { get; }
}
我不知道如何处理“???????” 在第一部分。
我承认我的问题与以下内容非常相似: 如何获取具有我的 MEF 插件的每个 DLL 的版本号? 但我希望能够在加载插件 之前访问这些信息。