Поддерживается ли шаблон Service Locator в .NET Core? - PullRequest
0 голосов
/ 07 октября 2019

Поддерживает ли ядро ​​.net шаблон локатора службы? Я понимаю возможность внедрения зависимости, и это считается анти-паттерном, но я хочу знать, возможно ли это в ядре .net?

В документации ядра .net, похоже, говорится, что они поддерживаютшаблон локатора службы посредством внедрения IServiceProvider, а затем разрешения службы с этим введенным поставщиком. Проблема в том, что это все еще внедрение зависимостей, и оно работает не во всех случаях.

Другой «взлом», который я пробовал, - это сохранение созданного ServiceProvider (либо в Configure (), либо сборка вConfigureServices ()). Проблема в том, что я сохраняю корневого поставщика в основном глобальную переменную. Поскольку это корневой провайдер, все сервисы с областью видимости обновляются до одиночных, поэтому это неправдоподобное решение.

Вот как это работает в .net framework:

var myService =
    (T)GlobalConfiguration.Configuration.DependencyResolver.GetService(typeof(T)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...