Как проанализировать 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);
}
}
}