私はWPFとCaliburn.Microを学んでいます。私はここに提示されたコードに従っています: http ://caliburnmicro.codeplex.com/wikipage?title = Customizing%20The%20Bootstrapper&referringTitle = Documentation
どうやらこのコードはSilverlight用ですが、私のプロジェクトはWPFであるため、CompositionHostが定義されていないというエラーが発生します。
ドキュメントには、コンテナをwpfで直接初期化する必要があると記載されていますが、その方法を示すドキュメントはありません。コンテナを直接初期化するにはどうすればよいですか?
編集1ドキュメントでは、ブートストラッパーは次のようになっています。
container = CompositionHost.Initialize(
new AggregateCatalog(
AssemblySource.Instance.Select(x => new AssemblyCatalog(x)).OfType<ComposablePartCatalog>()
)
);
var batch = new CompositionBatch();
batch.AddExportedValue<IWindowManager>(new WindowManager());
batch.AddExportedValue<IEventAggregator>(new EventAggregator());
batch.AddExportedValue(container);
container.Compose(batch);
そして私はそれをに変換しました:
var catalog =
new AggregateCatalog(
AssemblySource.Instance.Select(x => new AssemblyCatalog(x)).OfType<ComposablePartCatalog>());
this.container = new CompositionContainer(catalog);
var batch = new CompositionBatch();
batch.AddExportedValue<IWindowManager>(new WindowManager());
batch.AddExportedValue<IEventAggregator>(new EventAggregator());
batch.AddExportedValue(this.container);
this.container.Compose(batch);
しかし、アプリケーションを実行すると、MEFがIShellの実装を見つけることができないというエラーが発生します
Could not locate any instances of contract IShell.
MEFの初期化が正しくないと思います。修正を手伝ってもらえますか?