Как проанализировать YAML с помощью ключа слияния и переопределения в YamlDotNet?

Согласно этому ответу за 2014 год /questions/21005196/podderzhivaet-li-biblioteka-c-yamldotnet-klyuch-sliyaniya/21005204#21005204, YamlDotNet поддерживает ключи слияния и переопределяющие значения. Но когда я запускаю следующий код, я получаю ошибку дублированного ключа:

Необработанное исключение: YamlDotNet.Core.YamlException: (строка: 4, столбец 5, Idx: 40) - (строка: 4, столбец 9, Idx: 44): повторяющийся ключ ---> System.ArgumentException: элемент с тот же ключ уже был добавлен. Ключ: ключ1

Приведенный ниже код отличается от связанного ответа, поскольку API YamlDotNet, по-видимому, развивалось в течение последних 4 лет, и это, по-видимому, каноническое использование. Это все еще возможно? Как мне использовать API, чтобы это работало?

using System;
using System.IO;
using YamlDotNet.Core;
using YamlDotNet.RepresentationModel;

namespace Dummy.ParseYaml
{
    class Program
    {
        static string DUMMY_YAML = @"---
aliases:
  globals: &globals
    key1: 'value1'
    key2: 'value2'
  contexts:
    context1:
      <<: *globals
    context2:
      key1: 'override'
      <<: *globals
";
        static void Main(string[] args)
        {
            var mergingParser = new MergingParser(new Parser(new StringReader(DUMMY_YAML)));
            var yamlStream = new YamlStream();
            yamlStream.Load(mergingParser);
        }
    }
}

0 ответов

Другие вопросы по тегам