Встречается на 12% собеседований по C#

Какие знаешь Жизненные циклы зависимостей

В C# (с использованием DI-контейнера) есть три основных жизненных цикла зависимостей:

  1. Singleton – создается один раз на все время работы приложения.
    csharp
    services.AddSingleton<IService, Service>();
  1. Scoped – создается один раз в рамках области (например, HTTP-запроса в веб-приложении).

    csharp
    services.AddScoped<IService, Service>();
  2. Transient – создается новый экземпляр при каждом запросе.

    csharp
    services.AddTransient<IService, Service>();

Нюансы:

  • Singleton должен быть потокобезопасным.
  • Scoped в консольном приложении требует явного создания Scope через IServiceScopeFactory.
  • Transient может привести к утечкам памяти, если зависимости не освобождаются.

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы