Ich brauche MEF und MVVM Muster für meine WPF App.MEF automatisch lösen Objekt
Eigentlich habe ich ein Ansichtsmodell so definiertem:
[Export]
[PartCreationPolicy(CreationPolicy.NonShared)]
class MainVM
{
IServiceA serviceA;
IServiceB serviceB;
[ImportingConstructor]
public MainVM(IServiceA serviceA, IServiceB serviceB)
{
this.serviceA = serviceA;
this.serviceB = serviceB;
System.Diagnostics.Debug.WriteLine(serviceA.Time);
}
}
Für das VM Abrufen ich Verwendung eines VMLocator machen, so gemacht:
class ViewModelLocator
{
static ViewModelLocator instance;
public MainVM MainVM
{
get
{
MainVM output = MefBootstrap.Container.GetExportedValue<MainVM>();
return output;
}
}
protected ViewModelLocator()
{
}
public static ViewModelLocator Instance
{
get
{
return instance ?? (instance = new ViewModelLocator());
}
}
}
von XAML genannt:
DataContext="{Binding Source={x:Static provider:ViewModelLocator.Instance}, Path=MainVM}"
Dieser Code funktioniert tatsächlich.
Was ich frage mich, ob realisierbar automatisch mit dem Import VM nur MEF ExportAttribute [Import] auf der Attributdeklaration von VMLocator statt mit GetExportValue() Methode.
Ist die eine Lösung?
Haben Sie es versucht? Was war das Problem, als du das getan hast? – wkl
MainVM wird überhaupt nicht aufgelöst. Ich habe versucht mit [Import] öffentliche MainVM MainVM {bekommen; einstellen; } –