プラグインシステムにMEF(C#4.0)を使用しています。場合によっては、すべてのプラグインの派生タイプのリストを取得する必要があります(主にXML逆シリアル化用)。プラグインをインスタンス化せずにこれを行うことはできますか?
これは機能しますが、インスタンス化が必要です。
var cat = new DirectoryCatalog(path, "*.dll");
var container = new CompositionContainer(cat);
container.ComposeParts(this);
foreach (var plugin in Plugins)
{
// Would be better if this could be done via Metadata!
DoStuff(plugin.Value.GetType());
}
// ...
[ImportMany]
public Lazy<PluginBase, IPluginMetadata>[] Plugins
{
get;
private set;
}
Q:ExportAttribute
いくつかの、または他の技術を介してこれを達成することは可能ですか?
ありがとう。