C#:
Travailler avec YAML

Comment faire :

C# n’a pas de support intégré pour YAML, mais vous pouvez facilement travailler avec YAML en utilisant des bibliothèques tierces telles que YamlDotNet. Tout d’abord, vous devez installer le package YamlDotNet :

Install-Package YamlDotNet -Version 11.2.1

Lire du YAML :

Imaginez que vous ayez un fichier YAML config.yaml avec le contenu suivant :

appSettings:
  nom: MonAppli
  version: 1.0.0

Vous pouvez lire et analyser ce fichier YAML en C# comme ceci :

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 nom { 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) // Ajustez la convention de nommage en conséquence
            .Build();

        var config = deserializer.Deserialize<AppConfig>(yaml);

        Console.WriteLine($"Nom: {config.appSettings.nom}, Version: {config.appSettings.version}");
    }
}

Exemple de sortie :

Nom: MonAppli, Version: 1.0.0

Écrire dans un fichier YAML :

Pour écrire des données dans un fichier YAML, utilisez la classe Serializer de YamlDotNet. Voici comment sérialiser un objet en retour vers 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
            {
                nom = "MonAppli",
                version = "2.0.0"
            }
        };

        var serializer = new SerializerBuilder()
            .WithNamingConvention(UnderscoredNamingConvention.Instance) // Ajustez la convention de nommage en conséquence
            .Build();

        var yaml = serializer.Serialize(config);
        File.WriteAllText("updatedConfig.yaml", yaml);

        Console.WriteLine(yaml);
    }
}

Exemple de sortie :

appSettings:
  nom: MonAppli
  version: 2.0.0

Cette approche directe démontre comment travailler efficacement avec YAML dans vos projets C#, en facilitant la lecture et l’écriture de fichiers YAML à l’aide de la bibliothèque YamlDotNet.