Sobes.tech
Middle

C#-da xidmətlərin konfiqurasiya metodları nə üçün istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

Asılılıqları Dependency Injection konteynerində qeydiyyatdan keçirmək üçün. Bu, tətbiqin infrastrukturunun xidmət nümunələrinin yaradılmasını idarə etməsinə və lazım olan yerlərə onları injekt etməsinə imkan verir.

Əsas məqsədlər:

  • Həyat dövrünün idarə olunması: Xidmət nümunəsinin mövcud olma müddətini müəyyən etmək (Singleton, Scoped, Transient).
  • Ayrılmış memarlıq: Komponentlər arasında asılılığı azaltmaq üçün abstraksiyalardan (interfeyslər) istifadə etmək.
  • Test ediləbilərlik: Birlik testləri üçün xidmətlərin tətbiqlərini asanlıqla dəyişdirmək.
  • Konfiqurasiya ediləbilərlik: Müştəri kodunu dəyişmədən bir tətbiqi digərinə dəyişdirmək imkanı.

ASP.NET Core-da xidmətlərin qeydiyyatı nümunəsi:

// Startup.cs və ya Minimal API-lərdə Program.cs
public void ConfigureServices(IServiceCollection services)
{
    // Singleton həyat dövrü ilə xidmətin qeydiyyatı
    services.AddSingleton<ISingletonService, SingletonService>();

    // Scoped həyat dövrü ilə xidmətin qeydiyyatı
    services.AddScoped<IScopedService, ScopedService>();

    // Transient həyat dövrü ilə xidmətin qeydiyyatı
    services.AddTransient<ITransientService, TransientService>();

    // MVC və digər standart xidmətlərin qeydiyyatı
    services.AddControllersWithViews();
}

Xidmətlərin həyat dövrləri:

Həyat dövrü Təsviri Bir sorğu (HTTP) daxilində nümunələr
Singleton Bütün tətbiq müddətində bir nümunə. Bir
Scoped Sorğunun müddətində (HTTP kontekstində) bir nümunə. Bir
Transient Hər xidmət sorğusunda yeni nümunə yaradılır. Bir neçə (hər injeksiyada)