我使用yamldotnet和c#来反序列化由第三方软件应用程序创建的文件.以下YAML文件示例均在应用程序中有效:
#File1
Groups:
- Name: ATeam
FirstName, LastName, Age, Height:
- [Joe, Soap, 21, 184]
- [Mary, Ryan, 20, 169]
- [Alex, Dole, 24, 174]
#File2
Groups:
- Name: ATeam
FirstName, LastName, Height:
- [Joe, Soap, 184]
- [Mary, Ryan, 169]
- [Alex, Dole, 174]
Run Code Online (Sandbox Code Playgroud)
请注意,File2没有任何Age列,但反序列化器仍然必须识别每行的第三个值是高度而不是年龄.这些数据应该代表一个人的表.以File1为例,Mary Ryan年仅20岁,身高169厘米.反序列化器需要理解它具有的列(对于File2,它只有FirstName,LastName和Height)并相应地将数据存储在正确的对象中:Mary Ryan高169厘米.
类似地,程序文档声明列的顺序并不重要,因此下面的File3是一种同样有效的方式来表示File2中的数据,即使Height现在是第一个:
#File3
Groups:
- Name: ATeam
Height, FirstName, LastName:
- [184, Joe, Soap]
- [169, Mary, Ryan]
- [174, Alex, Dole]
Run Code Online (Sandbox Code Playgroud)
我有很多问题: