Что означает AddScoped в ASP.NET Core Web API
В Program.cs сервиса на ASP.NET Core есть регистрации:
builder.Services.AddScoped<IOrderRepository, OrderRepository>();
builder.Services.AddSingleton<IPriceCache, PriceCache>();
В обработке одного HTTP-запроса IOrderRepository внедряется в контроллер и ещё в два сервиса, которые контроллер вызывает.
Какое утверждение о времени жизни OrderRepository верно?
- Все три места получат один и тот же экземпляр, а на следующий запрос будет создан новый
- Каждое внедрение создаст отдельный экземпляр — так же, как при AddTransient: Scoped управляет только моментом вызова Dispose
- Экземпляр будет создан один раз на всё время работы приложения, как у PriceCache
- Экземпляр создаётся один на поток и переиспользуется всеми запросами этого потока
