Junior — Middle
Bağımlılık Enjeksiyonu bağlamında Scoped nesnelerin kapsamı ile Transient arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
C#'ta Bağımlılık Enjeksiyonu bağlamında, Scoped ve Transient kapsam alanları, oluşturulan nesnelerin yaşam süresini belirler:
-
Transient: nesne her talep edildiğinde yeniden oluşturulur. Bu, hizmet her çağrıldığında veya enjekte edildiğinde yeni bir örneğin oluşturulacağı anlamına gelir.
-
Scoped: nesne, bir istek (scope) süresince bir kez oluşturulur. Web uygulamalarında, bu genellikle aynı HTTP isteği kapsamında aynı örneğin kullanılacağı, ancak başka bir istek için yeni bir örneğin oluşturulacağı anlamına gelir.
Örnek:
services.AddTransient<IMyService, MyService>(); // her talepte yeni nesne
services.AddScoped<IMyService, MyService>(); // HTTP isteği başına bir nesne
Bu nedenle, Scoped, tek bir istek kapsamında durumu saklamak için uygundur, Transient ise stateless servisler için, her seferinde yeni bir örneğe ihtiyaç duyulduğunda kullanılır.