Sobes.tech
Back to questions
Junior — Middle
72

Как определяется срок существования объекта после его внедрения через механизм Dependency Injection?

Companies where asked
OZONOZON

Answer from AI

sobes.tech AI

Срок существования объекта, созданного через Dependency Injection (DI), определяется временем жизни (lifetime), которое задаётся при регистрации сервиса в контейнере DI. В C# (например, в ASP.NET Core) есть три основных типа времени жизни:

  • Transient — новый экземпляр создаётся при каждом запросе сервиса.
  • Scoped — один экземпляр создаётся на область (например, на HTTP-запрос) и используется повторно в рамках этой области.
  • Singleton — один экземпляр создаётся при первом запросе и живёт до завершения работы приложения.

Пример регистрации:

services.AddTransient<IMyService, MyService>();
services.AddScoped<IMyService, MyService>();
services.AddSingleton<IMyService, MyService>();

Таким образом, срок жизни объекта зависит от выбранного времени жизни при регистрации в DI-контейнере.