Junior — Middle
Bağımlılık enjeksiyonu konteynerine kaydedildikten sonra nesnenin varlık süresi nasıl belirlenir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bağımlılık Enjeksiyonu (DI) kapsayıcısında bir nesnenin varlık süresi (lifetime), kayıt sırasında belirlenen yaşam döngüsü (lifetime) ile belirlenir.
C#'ta (örneğin, Microsoft.Extensions.DependencyInjection'da) temel yaşam döngüsü seçenekleri:
- Transient: Her istekte yeni bir örnek oluşturulur.
- Scoped: Bir alan (örneğin, bir web uygulamasında HTTP isteği) başına bir örnek oluşturulur.
- Singleton: İlk istekte bir örnek oluşturulur ve uygulama kapanana kadar yaşar.
Farklı yaşam süreleriyle bir hizmet kaydı örneği:
services.AddTransient<IMyService, MyService>(); // her seferinde yeni nesne
services.AddScoped<IMyService, MyService>(); // oturum/istek başına bir nesne
services.AddSingleton<IMyService, MyService>(); // tüm çalışma süresi boyunca bir nesne
Bu nedenle, nesnenin varlık süresi, DI kapsayıcısına kayıt sırasında seçilen yaşam döngüsüne bağlıdır.