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:
-
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.
-
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.
-
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.