Junior — Middle
Asılılıqların injeksiyası konteynerində qeydiyyatdan keçdikdən sonra obyektin mövcud olma müddəti necə müəyyən edilir?
sobes.tech Süni İntellekt
AI-dan cavab
Obyektin mövcudluq müddəti (lifetime) onun qeydiyyatı zamanı təyin olunan həyat dövrü (lifetime) ilə müəyyən edilir.
C#-da əsas həyat dövrü seçimləri (məsələn, Microsoft.Extensions.DependencyInjection-də):
- Transient: hər sorğuda yeni nümunə yaradılır.
- Scoped: hər sahə üçün (məsələn, veb tətbiqində HTTP sorğusu üçün) bir nümunə yaradılır.
- Singleton: ilk sorğuda yaradılır və tətbiqin sonuna qədər yaşayır.
Fərqli həyat dövrləri ilə xidmətin qeydiyyatı nümunəsi:
services.AddTransient<IMyService, MyService>(); // hər dəfə yeni obyekt
services.AddScoped<IMyService, MyService>(); // sessiya/sorğu üçün bir obyekt
services.AddSingleton<IMyService, MyService>(); // bütün iş müddətində bir obyekt
Beləliklə, obyektin mövcudluq müddəti DI konteynerində qeydiyyatdan keçərkən seçilən həyat dövrünə bağlıdır.