Back to questions
OZON
Junior — Middle
72
Как определяется срок существования объекта после его регистрации в контейнере внедрения зависимостей?
Companies where asked
Answer from AI
sobes.tech AI
Срок существования объекта в контейнере внедрения зависимостей (DI) определяется его жизненным циклом (lifetime), который задаётся при регистрации.
Основные варианты жизненного цикла в C# (например, в Microsoft.Extensions.DependencyInjection):
- Transient: новый экземпляр создаётся при каждом запросе.
- Scoped: один экземпляр создаётся на область (например, на HTTP-запрос в веб-приложении).
- Singleton: один экземпляр создаётся при первом запросе и живёт до завершения работы приложения.
Пример регистрации сервиса с разным временем жизни:
services.AddTransient<IMyService, MyService>(); // новый объект каждый раз
services.AddScoped<IMyService, MyService>(); // один объект на сессию/запрос
services.AddSingleton<IMyService, MyService>(); // один объект на всё время работы
Таким образом, срок существования объекта зависит от выбранного жизненного цикла при регистрации в DI-контейнере.