Объясните принцип работы и назначение метода AddSingleton в контексте внедрения зависимостей.
Answer from AI
sobes.tech AI
Метод AddSingleton в контексте внедрения зависимостей (Dependency Injection) в C# используется для регистрации сервиса с жизненным циклом синглтона. Это означает, что контейнер DI создаст один единственный экземпляр данного сервиса на всё время работы приложения и будет возвращать именно этот экземпляр при каждом запросе.
Назначение AddSingleton — обеспечить, чтобы все компоненты, которые зависят от этого сервиса, использовали один и тот же объект, что полезно для сервисов, которые должны хранить состояние или быть ресурсоёмкими для создания.
Пример использования:
services.AddSingleton<IMyService, MyService>();
Здесь IMyService — интерфейс, а MyService — класс реализации. При первом запросе сервис создастся, а дальше будет использоваться тот же экземпляр.
Это отличается от AddTransient (создаёт новый экземпляр при каждом запросе) и AddScoped (создаёт один экземпляр на один запрос/сессию).