1

タイトル失礼します、言葉が詰まってしまいました

MEFの池につま先を浸しています。ここまでは順調ですね。ホスト アプリと、エクスポートする "プラグイン" アセンブリがいくつかあります。ホスト アプリは、単純なプロパティDescriptionAttributeを継承して持つ属性を定義します。私のテストフォームには. これは MEF によって適切に埋められ、コレクションをめくることができます。プロパティは埋められ、人生は黄金色です。後で個別のアセンブリに分割しますが、現時点では概念実証にすぎませんExportAttributeName<ImportMany> IEnumerable(Of Lazy(Of IDoStuff, IDescriptionAttribute))Name

さて、問題は次のとおりです。私が持っている属性を介して、IDoStuff実装しDescriptionAttributeている「プラグイン」クラスを身に着けているアセンブリバージョンを公開する方法はありますか? DescriptionAttributeこれまでのところ、属性のコンストラクターに渡す試みはすべて失敗しました。スタジオは、定数式が必要であると言い続けています (当然のことです)。IDoStuff インターフェイスを介して公開することもできますが、DescriptionAttribute代わりに属性の一部として使用する方がはるかに優れていて、"気分" が良くなります。ハードコードすることもできますが、「プラグイン」の新しいバージョンをリリースするときに更新するのを忘れる別の場所です:-)

4

1 に答える 1

1

MEF によってインポートされた IDoStuff を実装するクラスのインスタンスが多数あり、それぞれのアセンブリ バージョンを知りたいですか?

あなたはこれができますか?GetType() は、基になるクラスの型を返しますよね? typeof(IDoStuff) ではありませんか?

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