一尘不染

如何全局告诉Json.Net将StringEnumConverter应用于所有枚举

c#

我想使用json.net将枚举反序列化为它们的字符串表示形式,反之亦然。我可以弄清楚告诉框架应用的唯一方法StringEnumConverter是对有问题的属性进行如下注释:

[JsonConverter(typeof(StringEnumConverter))]
public virtual MyEnums MyEnum { get; set; }

但是,在我的用例中,全局配置json.net会更加方便,这样所有枚举都可以使用进行(反)序列化StringEnumConverter,而无需额外的注释。

有没有办法做到这一点,例如在custom的帮助下JsonSerializerSettings


阅读 262

收藏
2020-05-19

共1个答案

一尘不染

将一个添加StringEnumConverterJsonSerializerSettingsConverters集合。

文档:
使用JsonConverters进行序列化


如果您希望序列化程序使用camelCasing,则也可以进行以下设置:

SerializerSettings.Converters.Add(
    new StringEnumConverter { CamelCaseText = true });

这将序列化SomeValuesomeValue

2020-05-19