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

よろしく、ベンジャミン V.

4

1 に答える 1

1

こんにちは、github マネージャーから回答を受け取りました: https://github.com/aaubry/YamlDotNet/issues/328

これは、YAML ドキュメントがマッピングではなく一連のマッピングであるためです。それは List> にマップされます。YAML ドキュメントの構造を制御できる場合は、次のように変更する必要があります。

URL: 誰: /fr-fr/who-we-are テスト: /fr-fr/test

targetDirectory: d:\temp\ それ以外の場合は、ICollection を実装するクラスを実装し、その型を Urls プロパティとして使用する必要があります。

ご協力ありがとうございました!

于 2018-06-21T11:35:01.827 に答える