Чем AddScoped может быть опасен при неправильном использовании?
Что хотят услышать интервьюеры:
Неправильное использование AddScoped опасно тем, что проблема часто проявляется не сразу, а под нагрузкой или при изменении требований. Обязательно различайте Transient, Scoped и Singleton, особенно lifetime mismatch.
- Суть: Scoped lifetime создает один экземпляр сервиса на scope, в ASP.NET Core обычно на HTTP-запрос.
- Где встречается: регистрация сервисов, настройка окружений, логирование, observability и сопровождение приложения.
- Типичная ошибка: не понимать lifetimes, инжектить scoped в singleton или хранить секреты в коде.
- Как отвечать: начните с короткого определения, затем приведите пример, назовите ограничение и типичную ошибку.
- Ожидаемый уровень: Middle+. Умение учитывать production-ограничения, производительность и надежность.
Ответ:
builder.Services.AddScoped<IOrderService, OrderService>();
logger.LogInformation("Order {OrderId} created", orderId);