YAML Konfigürasyonu Okumak: appsettings.yml ASP.NET'te

ASP.NET uygulamalarında ayarlar genellikle JSON formatında tutulur, ama YAML da kullanabilirsin. YAML daha okunabilir ve az yazılı; özellikle karmaşık yapılandırmalarda tercih edilir.

YAML okumak için önce NuGet paketini yüklemen gerekir. Terminal ya da Package Manager Console'da şunu çalıştır:

1dotnet add package YamlDotNet

Sonra appsettings.yml dosyası oluştur. Örneğin:

1AppSettings:
2DatabaseConnection: "Server=localhost;Database=MyApp"
3LogLevel: "Information"
4ApiTimeout: 30
5
6Logging:
7LogLevel:
8Default: "Information"
9Microsoft: "Warning"

Program.cs dosyasında IConfiguration'a YAML desteği ekle:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1var builder = WebApplication.CreateBuilder(args);
2
3builder.Configuration.AddYamlFile("appsettings.yml", optional: false, reloadOnChange: true).AddYamlFile($"appsettings.{builder.Environment.EnvironmentName}.yml", optional: true);
4
5var app = builder.Build();

Artık ayarlara erişebilirsin. Bir controller veya service'te IConfiguration enjekte et:

1public class MyService
2{
3private readonly IConfiguration _config;
4
5public MyService(IConfiguration config)
6{
7_config = config;
8}
9
10public void ShowSettings()
11{
12var dbConnection = _config["AppSettings:DatabaseConnection"];
13var timeout = _config.GetValue<int>("AppSettings:ApiTimeout");
14var logLevel = _config["Logging:LogLevel:Default"];
15
16Console.WriteLine($"Database: {dbConnection}");
17Console.WriteLine($"Timeout: {timeout} saniye");
18Console.WriteLine($"Log Level: {logLevel}");
19}
20}

Çıktı:

1Database: Server=localhost;Database=MyApp
2Timeout: 30 saniye
3Log Level: Information

Not: Ortama göre farklı ayarlar kullanmak için appsettings.Development.yml ve appsettings.Production.yml dosyaları oluştur. ASP.NET otomatik olarak doğru dosyayı yükler.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz

1 yorum

  • limonlukek

    YAML yerine JSON kullanmaya devam etmemin sebebi ne ya niye ek bir paket kurup uğraşayım diye merak ettim Okunabilirlik farkı o kadar mı büyük