Does C# YamlDotNet library support the merge key?

谁说胖子不能爱 提交于 2019-12-01 07:17:09

Edit

YamlDotNet now has support for merge keys.

Example:

using System;
using System.IO;
using System.Collections.Generic;
using YamlDotNet.Serialization;
using YamlDotNet.Core;

public class Program
{
    public static void Main()
    {
        var yaml = @"
anchor: &default
  key1: &myValue value1
  key2: value2
alias:
  <<: *default
  key2: Overriding key2
  key3: value3
";

        var reader = new EventReader(new MergingParser(new Parser(new StringReader(yaml))));

        var deserializer = new Deserializer();
        var result = deserializer.Deserialize<Dictionary<string, Dictionary<string, string>>>(reader);

        var alias = result["alias"];
        Console.WriteLine("key1 = {0}", alias["key1"]);
        Console.WriteLine("key2 = {0}", alias["key2"]);
    }
}

Output:

key1 = value1
key2 = Overriding key2

Merge keys are not (yet) supported. It is a planned feature, but right now you will have to implement it yourself.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!