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 YamlDotNetSonra appsettings.yml dosyası oluştur. Örneğin:
1AppSettings:2DatabaseConnection: "Server=localhost;Database=MyApp"3LogLevel: "Information"4ApiTimeout: 3056Logging: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);23builder.Configuration.AddYamlFile("appsettings.yml", optional: false, reloadOnChange: true).AddYamlFile($"appsettings.{builder.Environment.EnvironmentName}.yml", optional: true);45var app = builder.Build();Artık ayarlara erişebilirsin. Bir controller veya service'te IConfiguration enjekte et:
1public class MyService2{3private readonly IConfiguration _config;45public MyService(IConfiguration config)6{7_config = config;8}910public void ShowSettings()11{12var dbConnection = _config["AppSettings:DatabaseConnection"];13var timeout = _config.GetValue<int>("AppSettings:ApiTimeout");14var logLevel = _config["Logging:LogLevel:Default"];1516Console.WriteLine($"Database: {dbConnection}");17Console.WriteLine($"Timeout: {timeout} saniye");18Console.WriteLine($"Log Level: {logLevel}");19}20}Çıktı:
1Database: Server=localhost;Database=MyApp2Timeout: 30 saniye3Log Level: InformationNot: 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.
1 yorum
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