Как зарегистрировать множественную реализацию интерфейса в IoC в MvvmLight?

Зарегистрировать реализацию нескольких интерфейсов в LightInject IoC

Как использовать Moc MvvmLight для решения проблемы? У меня есть несколько DataService (DataService1, DataService2, DataService3 ...). Все они IDataService и должны быть связаны с несколькими ViewModel. Mvvmlight не может этого сделать:

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

1 ответ

Решение

Вы также можете использовать ключевые идентификаторы класса в MvvmLight, вот так

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");
Другие вопросы по тегам