道歉的稱號,我被困了話揭露MEF的版本裝「插件」
我傾我的腳趾在MEF池塘。到現在爲止還挺好。我有一個主機應用程序和一些導出東西的「插件」程序集。主機應用程序定義了一個稱爲DescriptionAttribute
的屬性從ExportAttribute
繼承和具有簡單的Name
屬性。我的測試表格有一個<ImportMany>
IEnumerable(Of Lazy(Of IDoStuff, IDescriptionAttribute))
。這得到了MEF的好評,我可以通過收集,Name
財產充滿,生活是金色的。 稍後我會將事情分解成單獨的程序集,目前它只是概念證明。
現在,問題是:我可以通過DescriptionAttribute
屬性公開我佩戴「插件」類的IDoStuff
實現的程序集版本DescriptionAttribute
嗎?我迄今所有將它傳遞給屬性構造函數的嘗試都失敗了,工作室一直告訴我需要一個常量表達式(可以理解)。我可以通過IDoStuff接口公開它,但將它作爲DescriptionAttribute
屬性的一部分會更好,因爲它的「感覺」更好。我也可以對它進行硬編碼,但這是另一個發佈新版本「插件」時忘記更新的地方:-)
啊,'GetType,我一直忘記那個。是的,這是一個可行的解決方案。如果我需要其他的東西,我可以將它硬編碼爲DescriptionAttribute屬性的參數。 我試了一下,它的工作原理,你是一個冠軍馬特! – 2009-09-23 09:31:15