Junior — Middle
79
Dependency Injection-те Scoped және Transient объектілерінің айырмашылығы неде?
Сұралған компаниялар
ООО Клеркгрупп
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-сервисов, где нужен новый экземпляр каждый раз.