我想解析以下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行,Idx: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
关于, 本杰明五世。
答案 0 :(得分:0)
你好,我收到了github管理器的回答:https://github.com/aaubry/YamlDotNet/issues/328
那是因为您的YAML文档是一系列映射,而不是映射。那将映射到List>。如果您可以控制YAML文档的结构,则应将其更改为:
网址: 谁:/ fr-fr /我们是谁 测试:/ fr-fr / test
targetDirectory:d:\ temp \ 否则,您将需要实现一个实现ICollection的类并将该类型用作Urls属性。
谢谢您的帮助!