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