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

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

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

有没有办法做到这一点,例如在自定义JsonSerializerSettings的帮助下?

最佳答案

StringEnumConverter添加到JsonSerializerSettings Converters集合。

说明文件: Serialize with JsonConverters

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

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

这会将SomeValue序列化为someValue

关于c# - 如何全局告诉Json.Net将StringEnumConverter应用于所有枚举,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7427909/

10-12 04:48