C#:
Робота з YAML
Як це зробити:
C# не має вбудованої підтримки для YAML, але ви легко можете працювати з YAML, використовуючи сторонні бібліотеки, такі як YamlDotNet. Спочатку вам потрібно встановити пакет YamlDotNet:
Install-Package YamlDotNet -Version 11.2.1
Читання YAML:
Уявіть, що у вас є YAML-файл config.yaml
з наступним вмістом:
appSettings:
name: MyApp
version: 1.0.0
Ви можете прочитати та розібрати цей YAML-файл у C# так:
using System;
using System.IO;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
public class AppConfig
{
public AppSettings appSettings { get; set; }
}
public class AppSettings
{
public string name { get; set; }
public string version { get; set; }
}
class Program
{
static void Main(string[] args)
{
var yaml = File.ReadAllText("config.yaml");
var deserializer = new DeserializerBuilder()
.WithNamingConvention(UnderscoredNamingConvention.Instance) // Відповідно налаштуйте конвенцію іменування
.Build();
var config = deserializer.Deserialize<AppConfig>(yaml);
Console.WriteLine($"Назва: {config.appSettings.name}, Версія: {config.appSettings.version}");
}
}
Приклад виведення:
Назва: MyApp, Версія: 1.0.0
Запис YAML:
Щоб записати дані в YAML-файл, використовуйте клас Serializer
з YamlDotNet. Ось як ви можете серіалізувати об’єкт назад у YAML:
using System;
using System.IO;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
class Program
{
static void Main(string[] args)
{
var config = new AppConfig
{
appSettings = new AppSettings
{
name = "MyApp",
version = "2.0.0"
}
};
var serializer = new SerializerBuilder()
.WithNamingConvention(UnderscoredNamingConvention.Instance) // Відповідно налаштуйте конвенцію іменування
.Build();
var yaml = serializer.Serialize(config);
File.WriteAllText("updatedConfig.yaml", yaml);
Console.WriteLine(yaml);
}
}
Приклад виведення:
appSettings:
name: MyApp
version: 2.0.0
Цей простий підхід демонструє, як ефективно працювати з YAML у ваших проектах на C#, роблячи читання з файлів YAML та запис у них простими завдяки використанню бібліотеки YamlDotNet.