Sobes.tech
Back to questions
Junior — Middle
63

Объясните принцип работы и назначение метода AddSingleton в контексте внедрения зависимостей.

Answer from AI

sobes.tech AI

Метод AddSingleton в контексте внедрения зависимостей (Dependency Injection) в C# используется для регистрации сервиса с жизненным циклом синглтона. Это означает, что контейнер DI создаст один единственный экземпляр данного сервиса на всё время работы приложения и будет возвращать именно этот экземпляр при каждом запросе.

Назначение AddSingleton — обеспечить, чтобы все компоненты, которые зависят от этого сервиса, использовали один и тот же объект, что полезно для сервисов, которые должны хранить состояние или быть ресурсоёмкими для создания.

Пример использования:

services.AddSingleton<IMyService, MyService>();

Здесь IMyService — интерфейс, а MyService — класс реализации. При первом запросе сервис создастся, а дальше будет использоваться тот же экземпляр.

Это отличается от AddTransient (создаёт новый экземпляр при каждом запросе) и AddScoped (создаёт один экземпляр на один запрос/сессию).