Задать вопрос
Amir228
@Amir228

Зачем нужен Service Locator?

Вобще зачем такой не удобный и не лучший способ внедрение зависимостей через GetService()? Не легче ли внедрение делать через конструкторы?
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 2
AshBlade
@AshBlade
Просто хочу быть счастливым
Случаев использования много. В некоторых без него не обойтись.
Например:
- Зависимость необязательна
- Есть множество реализаций, а не 1
- Отложенное создание

Если не хочешь использовать - не используй
Ответ написан
@mvv-rus
Настоящий админ AD и ненастоящий программист
Не легче ли внедрение делать через конструкторы?

А вы не задумывались над тем, кто и как будет разрешать зависимости для конструкторов?
В нынешнем ASP.NET Core этим занимются каркасы приложений ("фрейворки", от английского framework). И делают они это как раз через контейнер сервисов (либо напрямую через GetService, либо через ActvatorUtilities).
Но есть области в ASP.NET Core , которые фремворками не закрываются - наример, в конвейере обработчиков запроса (middleware), там где требуется делегат типа RequestDelegate. И там без прямого обращения к контейнеру сервисов не обойтись.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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