Хранятся ли сервисы, добавленные с помощью AddScoped, в переменной HttpContext? - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь понять Dependency Injection в .NET Core. Может кто-нибудь указать мне, где хранятся сервисы, добавленные с помощью AddScoped (в Startup.cs)?

Это переменная HttpContext?

1 Ответ

1 голос
/ 11 октября 2019

Службы, настроенные в IServiceCollection, на самом деле не «хранятся», по крайней мере, ни в одной таблице поиска, на которую приложение должно ссылаться напрямую!

Добавление службы с использованием AddScoped, AddTransient или AddSingleton просто говорит каркасу, какпроизвести услугу в рамках объема. Фреймворк будет управлять созданием сервиса по определению при создании управляемых компонентов с помощью Dependency Injection, или он будет использовать кэшированную версию, если она уже существует для этой области.

Для AddScoped фреймворк будет использовать какой-то видкешируется ключом идентификатора запроса / соединения, но все, что вам нужно сделать, это написать временный компонент или компонент с областью действия (например, Controller) и объявить экземпляр вашей службы с ограничениями в качестве зависимости в конструкторе.

...