C# 如何将自定义转换器应用于YamlDotNet中的属性

C# 如何将自定义转换器应用于YamlDotNet中的属性,c#,deserialization,yaml,yamldotnet,C#,Deserialization,Yaml,Yamldotnet,我正在将配置文件从.json移植到.yaml格式。例如,在Newtonsoft.Json中,我能够将属性应用于需要自定义转换器的属性 [JsonConverter(typeof(CustomIdConverter))] public IList<CustomID> Users { get; set; } [JsonConverter(typeof(CustomIdConverter))] 公共IList用户{get;set;} 我将如何使用同样的方法 我知道转换器应该实现IYam

我正在将配置文件从.json移植到.yaml格式。例如,在Newtonsoft.Json中,我能够将属性应用于需要自定义转换器的属性

[JsonConverter(typeof(CustomIdConverter))]
public IList<CustomID> Users { get; set; }
[JsonConverter(typeof(CustomIdConverter))]
公共IList用户{get;set;}
我将如何使用同样的方法


我知道转换器应该实现
IYamlTypeConverter
接口,但如何将此转换器应用于精确属性?

不支持此功能,尽管这是一个有用的功能。支持的是将转换器与类型关联。作为解决方法,您可以为属性创建自定义类型,并将转换器与之关联:

public interface ICustomIDList : IList<CustomID> {}

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

var deserializer = new DeserializerBuilder()
   .WithTypeConverter(new CustomIDListConverter())
   .Build();
公共接口ICustomIDList:IList{} 公共类CustomIDListConverter:IYamlTypeConverter{/*…*/} var deserializer=新的DeserializerBuilder() .WithTypeConverter(新的CustomIDListConverter()) .Build();
我已经就此提出了一个问题-此解决方案肯定有效,但我希望看到它通过property属性实现。它增加了对序列化的非常精细的控制,肯定会解决许多流行的用例(包括我的)。