0

我想解析以下 YAML

urls:
   who: /fr-fr/who-we-are
   test: /fr-fr/test

targetDirectory: d:\temp

变成如下结构:

public class UserConfig 
{ 
    public Dictionary<string, string> Urls { get; set; } 
    public string TargetDirectory { get; set; } 
}

我尝试使用以下方法对其进行序列化:

var deserializer = new DeserializerBuilder() 
                      .WithNamingConvention(new CamelCaseNamingConvention())
                      .Build();

但我总是收到以下错误:(Line: 2, Col: 1, Idx: 8) - (Line: 2, Col: 2, Idx: 9): Expected 'MappingStart', got 'SequenceStart' (at Line: 2 , Col: 1, Idx: 8)。

这个库是否能够支持键值映射?如果是,我该怎么做?

编辑:

这个 YAML 给了我完全相同的结果:

urls: 
- who: /fr-fr/qui-sommes-nous?sc_site=schmidttest
- fabricantfrancais: /fr-fr/avantages-cuisinella/1er-fabricant-francais

targetDirectory: d:\temp

问候,本杰明五世。

4

1 回答 1

1

您好我收到了github管理员的回复:https ://github.com/aaubry/YamlDotNet/issues/328

那是因为您的 YAML 文档是一系列映射,而不是映射。那将映射到一个列表>。如果您可以控制 YAML 文档的结构,则应将其更改为:

网址:谁:/fr-fr/who-we-are 测试:/fr-fr/test

targetDirectory: d:\temp\ 否则,您将需要实现一个实现 ICollection 的类并将该类型用作 Urls 属性。

谢谢您的帮助!

于 2018-06-21T11:35:01.827 回答