Десериализация yaml в C#

У меня есть ряд файлов yaml с плохо реализованной структурой, которые мне нужно проанализировать в C#. Схема напоминает:

Root:
    KnownTypeA:
        VariableNameLevel3A:
            VariableNameLevel4A:
                KnownTypeAPropertyA:  Bar
                KnownTypeAPropertyB:  Bar
                KnownTypeAPropertyZ:  Bar    
    KnownTypeB:
        VariableNameLevel3B:
            VariableNameLevel4B:
                KnownTypeBPropertyA:  Baz
                KnownTypeBPropertyB:  Baz
                KnownTypeBPropertyZ:  Baz

    KnownTypeZ:
        VariableNameLevel3C:
            - Foo
            - Foo
            - Foo

SomePropertyA: Foo
SomePropertyA: Bar
SomePropertyA: Baz

Дети Root может быть ноль или более известных значений, KnownTypeA..Z, Следующие 2 уровня потомков являются произвольными значениями, VariableNameLevel3A..Z а также VariableNameLevel4A..Z, Последний уровень коллекций ключей / значений сопоставляется с моделью, описанной родителем на уровне 2, KnownTypeA..Z, Коллекции свойств не являются включающими и обычно пропускают один или несколько.

Наконец, первый уровень может иметь другие коллекции ключей / значений ниже известных Root узел интереса.

Я посмотрел на реализации C# yaml, и кажется, что yamldotnet является наиболее поддерживаемым, однако ему не хватает документации. Разбор этого беспорядка вручную - единственная альтернатива или кто-нибудь знает о реализации, которая может дать некоторое представление о подходе с моделями, в которых десериализатор может применить наиболее подходящую модель к VariableNameLevel4x коллекции?

0 ответов

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