Я просто изучаю 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 неверна. Не могли бы вы помочь мне исправить это?