Sto solo imparando WPF e Caliburn.Micro. Sto seguendo il codice che qui presentata: http://caliburnmicro.codeplex.com/wikipage?title=Customizing%20The%20Bootstrapper&referringTitle=DocumentationCaliburn.Micro e MEF su wpf
A quanto pare questo codice è per Silverlight, ma il mio progetto è un WPF e per questo motivo sto errore che CompositionHost non è definito ottenendo.
Il documento afferma che è necessario inizializzare il contenitore direttamente in wpf, ma non c'è alcun documento che mostri come. Come posso inizializzare il container direttamente?
Modifica 1 Lo Strapper avvio è come questo nella documentazione:
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);
e ho convertito a:
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);
Ma quando corro applicazione, io sono sempre errore che MEF non può trova implementazione per IShell
Could not locate any instances of contract IShell.
Credo che la mia inizializzazione di M EF non è corretto. Potete per favore aiutarmi a risolverlo?
Grazie. Si prega di vedere la mia modifica alla domanda. – mans
@mans Si prega di vedere il mio aggiornamento risposta. –