我有一系列结构较差的 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
. 键/值集合的最后一级映射到二级父级描述的模型,KnownTypeA..Z
. 属性集合不包括在内,通常会漏掉一个或多个。
最后,第一级可能在已知Root
的感兴趣节点下有其他键/值集合。
我查看了 c# yaml 实现,似乎 yamldotnet 是维护最多的,但它缺乏文档。手动解析这个烂摊子是唯一的选择,还是有人知道一种实现可能会对反序列化器可以将最合适的模型应用于VariableNameLevel4x
集合的模型的方法产生一些见解?