Sobes.tech
Junior — Middle

IoC konteynerinde hangi tür yaşam döngüleri vardır ve nasıl uygulanırlar?

sobes.tech yapay zeka

AI'dan gelen yanıt

IoC (Inversion of Control) kapsayıcılarında genellikle aşağıdaki nesne yaşam döngüsü türleri kullanılır:

  1. Transient (Geçici) — her talepte, kapsayıcı yeni bir nesne örneği oluşturur. Her işlem için yeni bir nesne gerekiyorsa kullanılır.

  2. Singleton (Tekil) — kapsayıcı, ilk talepte bir nesne örneği oluşturur ve sonraki tüm taleplerde onu geri döner. Durum veya kaynak gerektiren ve benzersiz olması gereken servisler için uygundur.

  3. Scoped (Kapsamlı) — nesne, belirli bir kapsam (örneğin, bir web uygulamasında istek) için bir kez oluşturulur ve bu kapsam içinde tekrar kullanılır. Kapsam sona erdiğinde nesne yok edilir.

C# örneği Microsoft.Extensions.DependencyInjection kullanılarak:

services.AddTransient<IService, Service>(); // her seferinde yeni nesne
services.AddSingleton<IService, Service>(); // uygulama yaşam döngüsü boyunca tek nesne
services.AddScoped<IService, Service>(); // her HTTP isteği için bir nesne

Yaşam döngüsü seçimi, nesnenin durum gereksinimleri ve uygulamanın performansına bağlıdır.