.net-4.0 の System.ComponentModel.Composition を使用して、Visual Studio 2010 ベータ 2 で初めて Managed Extensibility Framework を試しています。
以下の 2 つの代替ルーチンを使用して、CompositionContainer が実装アセンブリを見つけることができませんでした。
最初の試行 (これは MEF の古い codeplex リリースで機能しました):
var composition = new CompositionBatch();
composition.AddPart(this);
var container = new CompositionContainer(new DirectoryCatalog(AppDomain.CurrentDomain.BaseDirectory));
container.Compose(composition);
2回目の試み(これはベータ1で機能したと思います):
var aggregateCatalog = new AggregateCatalog(
new AssemblyCatalog(Assembly.GetExecutingAssembly()),
new DirectoryCatalog(AppDomain.CurrentDomain.BaseDirectory));
var compositionContainer = new CompositionContainer(aggregateCatalog);
compositionContainer.ComposeParts(this);
ベータ 2 でこれを行う新しい方法はありますか?
編集:構成とは何の関係もないことが判明しました。インポートした実装を表す静的プロパティがありました。
[Import] public static ILog Log { get; set; }
あるべきだった:
[Import] public ILog Log { get; set; }
より徹底的な方法でデバッグするという賢明なアドバイスが問題を解決したため、ダニエルの回答を受け入れたものとしてマークしました。