Sobes.tech
Middle

C#'ta hizmet yapılandırma yöntemleri ne için kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bağımlılıkları Bağımlılık Enjeksiyonu konteynerine kaydetmek için. Bu, uygulama altyapısının servis örneklerinin oluşturulmasını yönetmesine ve ihtiyaç duyulduğu yerlere enjekte etmesine olanak tanır.

Ana hedefler:

  • Yaşam döngüsü yönetimi: Bir servis örneğinin varlık süresini belirleme (Singleton, Scoped, Transient).
  • Bağımsız Mimari: Soyutlamalar (arayüzler) kullanarak bileşenler arasındaki bağımlılığı azaltma.
  • Test edilebilirlik: Birim testleri için servis uygulamalarını kolayca değiştirme.
  • Yapılandırılabilirlik: Bir uygulamayı değiştirmeden bir uygulamayı diğerine değiştirme imkanı.

ASP.NET Core'da servislerin kaydedilmesine örnek:

// Startup.cs veya Minimal API'lerde Program.cs
public void ConfigureServices(IServiceCollection services)
{
    // Singleton yaşam döngüsü ile servis kaydı
    services.AddSingleton<ISingletonService, SingletonService>();

    // Scoped yaşam döngüsü ile servis kaydı
    services.AddScoped<IScopedService, ScopedService>();

    // Transient yaşam döngüsü ile servis kaydı
    services.AddTransient<ITransientService, TransientService>();

    // MVC ve diğer standart servislerin kaydı
    services.AddControllersWithViews();
}

Servislerin yaşam döngüleri:

Yaşam Döngüsü Açıklama Bir istekteki (HTTP) örnekler
Singleton Uygulama boyunca bir örnek. Bir
Scoped İstek süresince (HTTP bağlamında) bir örnek. Bir
Transient Her servis isteğinde yeni bir örnek oluşturulur. Birkaç (her enjekte edilmede)