Does C# YamlDotNet library support the merge key?

為{幸葍}努か 提交于 2019-12-01 05:18:40

问题


I have a problem with C# YamlDotNet library http://www.aaubry.net/page/YamlDotNet

Do you know if the library does support the 'Merge Key' ? http://yaml.org/type/merge.html

This does not seem to work for me. In other libraries, like PyYaml the merge works fine.


回答1:


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.



来源:https://stackoverflow.com/questions/18894610/does-c-sharp-yamldotnet-library-support-the-merge-key

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