Sobes.tech
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.