@KislyFan
инженер, связист и просто любитель выпить

Как зарегистрировать в DI два одинаковых сервиса?

Вопрос наверно простой, но я с ходу не осилил. Допустим у меня есть Singletone сервис , и я хочу зарегистрировать еще один, чтобы они отличались по "именам". Обычно если два класса-сервиса реализуют один интерфейс, то создается DependencyResolver, который роется в IEnumerable и находит нужный тип, но что делать если оба сервиса идентичные и отличаются только по "именам"? Тут конечно возникает вопрос "нафига козе баян", да просто интересно, в частности что делать если у меня две одинаковые БД c разными connectionString, но одинаковым DbContext.
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 2
@oleg_ods
Если интерфейсы одинаковые можно вместо сервиса зарегистрировать фабрику, которая уже будет возвращать необходимую реализацию
Ответ написан
Комментировать
vabka
@vabka
Токсичный шарпист
Вроде в стандартном msdi нет именованных экземпляров. Так что вот два варианта, как бы я сделал:
1. Сделал бы двух наследников этого общего DbContext
2. Использовал бы сторонний DI. Например SimpleInjector или Autofac
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы