为标题道歉,我被卡住了
我正在MEF池塘里舔我的脚趾。到现在为止还挺好。我有一个主机应用程序和几个导出东西的“插件”程序集。主机应用程序定义了一个名为DescriptionAttribute
的属性,该属性继承自ExportAttribute
并具有简单的Name
属性。我的测试表单有<ImportMany>
IEnumerable(Of Lazy(Of IDoStuff, IDescriptionAttribute))
。这可以通过MEF很好地填充,我可以旋转整个集合,Name
属性被填充,生命是金色的。 我稍后会把事情拆分成单独的程序集,此刻它只是一个概念验证。
现在,问题是:我有没有办法通过我拥有的IDoStuff
属性公开DescriptionAttribute
实施,DescriptionAttribute
穿着“插件”类的汇编版本?到目前为止,我将它传递给属性的构造函数的所有尝试都失败了,工作室一直告诉我需要一个常量表达式(可以理解)。我可以通过IDoStuff接口公开它,但将它作为DescriptionAttribute
属性的一部分更好,而不是“感觉”更好。我也可以对它进行硬编码,但这是我在发布新版“插件”时忘记更新的另一个地方: - )
答案 0 :(得分:1)
所以你有一堆实现IDoStuff的类实例,由MEF导入,你想知道每个类的汇编版本吗?
你能做到吗? GetType()将返回基础类的类型,对吗?不是typeof(IDoStuff)?// IDoStuff myStuffDoer
var version = myStuffDoer.GetType().Assembly.GetName().Version;