YamlDotNet-解析字典中的属性

时间:2018-06-21 08:32:44

标签: c# yaml yamldotnet

我想解析以下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();

但是我总是得到以下错误:(第2行,第1行,I​​dx:8)-(第2行,第2行,Idx:9):预期为“ MappingStart”,得到了“ SequenceStart”(位于行:2,列: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

关于, 本杰明五世。

1 个答案:

答案 0 :(得分:0)

你好,我收到了github管理器的回答:https://github.com/aaubry/YamlDotNet/issues/328

  

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

     

网址:     谁:/ fr-fr /我们是谁     测试:/ fr-fr / test

     

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

谢谢您的帮助!