2017-01-10 25 views
2

設定ファイルを.jsonから.yaml形式に移植しています。 Newtonsoft.Jsonでは、私は例えばYamlDotNetのプロパティにカスタムコンバータを適用する方法

[JsonConverter(typeof(CustomIdConverter))] 
public IList<CustomID> Users { get; set; } 

がどのように私はYamlDotNetを使用して同じことをするだろう、カスタムコンバータを必要なプロパティに属性を適用することができましたか?

私はコンバーターにIYamlTypeConverterインターフェイスを実装する必要がありますが、このコンバーターを正確なプロパティにどのように適用すればよいですか?

答えて

2

これはサポートされていませんが、それは便利な機能です。サポートされているのは、コンバータをタイプに関連付けることです。回避策として、あなたはあなたの財産のカスタムタイプを作成し、それへのコンバータを関連付けることができます: - https://github.com/aaubry/YamlDotNet/issues/233

public interface ICustomIDList : IList<CustomID> {} 

public class CustomIDListConverter : IYamlTypeConverter { /* ... */ } 

var deserializer = new DeserializerBuilder() 
    .WithTypeConverter(new CustomIDListConverter()) 
    .Build(); 
+0

私はこれについて問題を開設しました –

+0

この回避策は間違いなく機能しますが、私はそれがプロパティ属性で実装されているのを見たいと思います。シリアライゼーションに対して非常にきめ細かな制御を加え、多くの一般的なユースケース(私を含む)を確実に解決します。 – stil

関連する問題