У меня клиент windows phone 8.1. Этот клиент подключается к веб-API (ASP.NET) и выбирает поддерживаемых поставщиков аутентификации. На данный момент это Google и Twitter. Пользователь (wp 8.1) может выбрать, какого провайдера он хочет использовать для аутентификации.
В зависимости от поставщика, выбранного на телефоне, базовый поток реализации для аутентификации отличается, другими словами, у Google есть один поток, а у Twitter — другой поток. Из-за этого у меня есть операторы переключения в моем клиенте, которые выглядят следующим образом
switch(authProvider)
case: "Google":
GoogleAuthProvider.PerfomAuthentication();
break;
case: "Twitter"
TwitterAuthProvider.PerformAuthentication();
break;
Моя главная проблема в том, что я сейчас жестко кодирую провайдера. Остальная часть моего телефонного приложения использует IOC (MVVMLight), и в этом случае я жестко кодирую. Как мне избавиться от этого, не обращаясь явно к контейнеру? Плюс скажем, в более поздний момент времени будет поддерживаться дополнительный поставщик аутентификации, а затем, исходя из текущей реализации, мне также нужно изменить клиентский код, как мне минимизировать это?