在C#中反序列化yaml

时间:2017-09-30 01:18:19

标签: c# deserialization yamldotnet

我有一系列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。 接下来的两个后代级别是任意值VariableNameLevel3A..ZVariableNameLevel4A..Z。最后一级键/值集合映射到级别2中父级KnownTypeA..Z所描述的模型。属性集合不包含在内,通常会遗漏一个或多个。

最后,第一级可能在感兴趣的已知Root节点下面有其他键/值集合。

我查看了c#yaml实现,看起来yamldotnet是维护最多的,但它缺少文档。手动解析这个混乱是唯一的替代方案,还是有人知道一个实现可能会对模型方法产生一些洞察力,其中解串器可以将最合适的模型应用于VariableNameLevel4x集合?

0 个答案:

没有答案