Junior — Middle
74
Чем отличается область видимости объектов Scoped от Transient в контексте Dependency Injection?
Companies where asked
ООО Клеркгрупп
Answer from AI
sobes.tech AI
В контексте Dependency Injection в C# область видимости Scoped и Transient определяют время жизни создаваемых объектов:
-
Transient: объект создаётся каждый раз заново при запросе. Это значит, что при каждом вызове сервиса или при каждой инъекции будет создаваться новый экземпляр.
-
Scoped: объект создаётся один раз на время одного запроса (scope). В веб-приложениях это обычно означает, что в рамках одного HTTP-запроса будет использоваться один и тот же экземпляр, но для другого запроса создастся новый.
Пример:
services.AddTransient<IMyService, MyService>(); // новый объект при каждом запросе
services.AddScoped<IMyService, MyService>(); // один объект на HTTP-запрос
Таким образом, Scoped удобен для хранения состояния в рамках одного запроса, а Transient — для stateless-сервисов, где нужен новый экземпляр каждый раз.