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

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

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

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

Похожие вопросы