C#:
Lavorare con TOML

Come fare:

Prima, installa un parser TOML come Tomlyn. Usa il tuo gestore di pacchetti:

dotnet add package Tomlyn

Successivamente, analizza un file TOML:

using Tomlyn;
using Tomlyn.Model;
using System;

var tomlContent = @"
[owner]
name = 'Tom Preston-Werner'
dob = 1979-05-27T07:32:00Z";

var tomlTable = Toml.Parse(tomlContent).ToModel();

Console.WriteLine($"Proprietario: {tomlTable["owner"]["name"]}");
// Output:
// Proprietario: Tom Preston-Werner

Ora, crea e scrivi TOML:

using Tomlyn;
using Tomlyn.Syntax;
using System;
using System.IO;

var doc = new DocumentSyntax
{
    Tables =
    {
        new TableSyntax("owner")
        {
            Items =
            {
                { "name", "Tom Preston-Werner" },
                { "dob", "1979-05-27T07:32:00Z" }
            }
        }
    }
};

var tomlString = doc.ToString();
File.WriteAllText("config.toml", tomlString);
Console.WriteLine("TOML scritto su config.toml");
// Output:
// TOML scritto su config.toml

Approfondimento:

TOML è stato creato da Tom Preston-Werner, co-fondatore di GitHub, intorno al 2013 come reazione alle limitazioni dei formati esistenti come YAML e JSON nelle impostazioni di configurazione. È specificamente progettato per le configurazioni con un forte enfasi su essere diretto e non ambiguo.

Alternative di formati di configurazione includono YAML, JSON e XML. Tuttavia, TOML si distingue per essere più amichevole per gli umani, in particolare per i file di configurazione dove la modifica manuale è comune. JSON, sebbene onnipresente, è meno leggibile per configurazioni complesse, e XML è verboso. YAML, sebbene simile in leggibilità, può diventare complesso con l’uso intenso di spazi bianchi e presenta rischi di sicurezza con determinati contenuti.

Dal punto di vista dell’implementazione, TOML si concentra su una mappatura pulita a una tabella hash, rendendo l’estrazione dei dati prevedibile. Con il rilascio della versione 1.0.0, TOML ha consolidato la sua specifica, migliorando stabilità e supporto agli strumenti.

Vedi anche: