2017-07-09 2 views
0

Register Multiple Interface Implementation In LightInject IoCComment enregistrer une implémentation d'interface multiple dans IoC dans MvvmLight?

Comment utiliser Ioc de MvvmLight pour résoudre le problème? J'ai plusieurs DataService (DataService1, DataService2, DataService3 ...). Ils sont tous IDataService et doivent être contactés avec plusieurs ViewModel. Mvvmlight ne peut le faire:

SimpleIoc.Default.Register<IDataService, DataService1>("DataService1Key"); 
SimpleIoc.Default.Register<IDataService, DataService2>("DataService2Key"); 
... 

Répondre

0

Vous pouvez également utiliser des identificateurs clés 'classe' dans MvvmLight, comme si

Class1 c1 = new Class1(); 
Class2 c2 = new Class2(); 

SimpleIoc.Default.Register<IDataClass>(() => c1, "Class1"); 
SimpleIoc.Default.Register<IDataClass>(() => c2, "Class2"); 

var t = SimpleIoc.Default.GetInstance<IDataClass>("Class1"); 
var s = SimpleIoc.Default.GetInstance<IDataClass>("Class2");