🖥 Знаешь три типа времени жизни сервисов в .NET? Разбираем их максимально понятно.
В ASP.NET Core есть три режима работы сервисов:
1) Transient
Создаются каждый раз, когда ты их запрашиваешь.
Подходят для лёгких, stateless-объектов.
2) Scoped
Создаются один раз на время одного HTTP-запроса.
Все компоненты внутри запроса получают один и тот же экземпляр.
Можно вручную создать собственный scope для фоновых задач или отдельной логики.
3) Singleton
Создаются один раз на всё время работы приложения.
Резолвятся из корневого ServiceProvider.
Подходят для тяжёлых объектов и глобального состояния.
Важный вопрос
Что делать, если внутри Singleton нужно получить Scoped-сервис?
Напрямую — нельзя, это ломает жизненный цикл и приводит к ошибкам.
Но есть корректный способ сделать это правильно.
⚡️ Подробный разбор здесь.
Post #1611
4.01K
