如何将自定义转换器应用于 YamlDotNet 中的属性
How to apply custom converter to properties in YamlDotNet
我正在将我的配置文件从 .json 移植到 .yaml 格式。在 Newtonsoft.Json 中,我能够将属性应用于需要自定义转换器的 属性,例如
[JsonConverter(typeof(CustomIdConverter))]
public IList<CustomID> Users { get; set; }
我如何使用 YamlDotNet 做同样的事情?
我知道转换器应该实现 IYamlTypeConverter
接口,但我如何将此转换器应用到确切的 属性?
没有对此的支持,尽管这将是一个有用的功能。支持的是将转换器关联到类型。作为解决方法,您可以为 属性 创建一个自定义类型并将转换器关联到它:
public interface ICustomIDList : IList<CustomID> {}
public class CustomIDListConverter : IYamlTypeConverter { /* ... */ }
var deserializer = new DeserializerBuilder()
.WithTypeConverter(new CustomIDListConverter())
.Build();
我正在将我的配置文件从 .json 移植到 .yaml 格式。在 Newtonsoft.Json 中,我能够将属性应用于需要自定义转换器的 属性,例如
[JsonConverter(typeof(CustomIdConverter))]
public IList<CustomID> Users { get; set; }
我如何使用 YamlDotNet 做同样的事情?
我知道转换器应该实现 IYamlTypeConverter
接口,但我如何将此转换器应用到确切的 属性?
没有对此的支持,尽管这将是一个有用的功能。支持的是将转换器关联到类型。作为解决方法,您可以为 属性 创建一个自定义类型并将转换器关联到它:
public interface ICustomIDList : IList<CustomID> {}
public class CustomIDListConverter : IYamlTypeConverter { /* ... */ }
var deserializer = new DeserializerBuilder()
.WithTypeConverter(new CustomIDListConverter())
.Build();