1

为标题道歉,我被卡住了

我在 MEF 池塘里踮起脚尖。到现在为止还挺好。我有一个主机应用程序和几个导出东西的“插件”程序集。宿主应用程序定义了一个名为的属性,该属性DescriptionAttribute继承自ExportAttribute并具有一个简单的Name属性。我的测试表格有一个<ImportMany> IEnumerable(Of Lazy(Of IDoStuff, IDescriptionAttribute)). 这被 MEF 很好地填满了,我可以在收藏中旋转,Name财产被填满,生活是金色的。稍后我会将内容拆分为单独的程序集,目前这只是一个概念证明

现在,问题是:有什么方法可以公开实现的程序集版本,IDoStuff通过我拥有的属性DescriptionAttribute佩戴“插件”类?DescriptionAttribute到目前为止,我将其传递给属性构造函数的所有尝试都失败了,工作室一直告诉我需要一个常量表达式(可以理解)。我可以通过 IDoStuff 接口公开它,但是将它作为DescriptionAttribute属性的一部分会更好,“感觉”更好。我也可以对其进行硬编码,但这是我在发布“插件”的新版本时忘记更新的另一个地方:-)

4

1 回答 1

1

所以你有一堆实现 IDoStuff 的类实例,由 MEF 导入,你想知道每个实例的程序集版本吗?

你能做这个吗?GetType() 将返回底层类的类型,对吗?不是类型(IDoStuff)?

// IDoStuff myStuffDoer
var version = myStuffDoer.GetType().Assembly.GetName().Version;
于 2009-09-23T09:02:49.193 回答