如何使用YamlDotNet反序列化yaml文件中的键/值对列表

如何使用YamlDotNet反序列化yaml文件中的键/值对列表,yaml,deserialization,yamldotnet,Yaml,Deserialization,Yamldotnet,您好,我正在使用YamlDotNet对yml文件进行反序列化,如下所示: name: element name description: something to describe parameters: - firstKey: value1 - secondKey: value2 这是用于反序列化的.net类: class MyElement { public string name { get; set; } public string description { get

您好,我正在使用YamlDotNet对yml文件进行反序列化,如下所示:

name: element name
description: something to describe

parameters:
- firstKey: value1
- secondKey: value2
这是用于反序列化的.net类:

class MyElement
{
    public string name { get; set; }
    public string description { get; set; }
    public ??? parameters { get; set; }
}
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
...
var deser = new DeserializerBuilder().WithNamingConvention(new CamelCaseNamingConvention()).Build();
var reader = File.OpenText(pathToFileYml);
var data = deser.Deserialize<MyElement>(reader);    
我可以使用哪种类型来正确地反序列化parameters属性以列出键/值对数组? 接下来,使用键检索值的更好方法是什么

这是要反序列化的C#代码:

class MyElement
{
    public string name { get; set; }
    public string description { get; set; }
    public ??? parameters { get; set; }
}
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
...
var deser = new DeserializerBuilder().WithNamingConvention(new CamelCaseNamingConvention()).Build();
var reader = File.OpenText(pathToFileYml);
var data = deser.Deserialize<MyElement>(reader);    
使用YamlDotNet.Serialization;
使用YamlDotNet.Serialization.NamingConventions;
...
var desr=new DeserializerBuilder().WithNamingConvention(new CamelCaseNamingConvention()).Build();
var reader=File.OpenText(pathToFileYml);
变量数据=反序列化(读卡器);
提前感谢

每个键值对都是一个映射,在YAML中有一个条目(单个键值对没有单独的结构)。因此,
参数
应该是List>`

如果您希望能够简单地查询每个键的值,则应删除序列并使其成为单个YAML映射:

parameters:
  firstKey: value1
  secondKey: value2
这将反序列化到
字典
,然后您可以查询该字典中的值。但是,参数的顺序将丢失

如果需要保留参数的顺序,则需要保留包含键值对的YAML序列,并将其反序列化为
OrderedDictionary
–afaik YamlDotNet不直接支持此操作,但可以使用原始结构(
List
)并从中构建OrderedDictionary。

每个键值对都是一个映射,在YAML中有一个条目(单个键值对没有单独的结构)。因此,
参数
应该是List>`

如果您希望能够简单地查询每个键的值,则应删除序列并使其成为单个YAML映射:

parameters:
  firstKey: value1
  secondKey: value2
这将反序列化到
字典
,然后您可以查询该字典中的值。但是,参数的顺序将丢失

如果需要保留参数的顺序,则需要保留包含键值对的YAML序列,并将其反序列化为
OrderedDictionary
–afaik YamlDotNet不直接支持此操作,但可以使用原始结构(
List
)并从中构建OrderedDictionary