我最近升级到了最新Newtonsoft.Json版本12.0.2。我之前运行的是旧版本 ( 11.0.2),在两者之间的某个位置,该StringEnumConverter.CamelCaseText属性已被弃用。
根据StringEnumConverter 类,"StringEnumConverter.CamelCaseText is obsolete. Set StringEnumConverter.NamingStrategy with CamelCaseNamingStrategy instead."我在以下场景中进行了以下更改CamelCaseText == true:
// Deprecated approach
new StringEnumConverter() { CamelCaseText = true };
// New approach
new StringEnumConverter() { NamingStrategy = new CamelCaseNamingStrategy() };
Run Code Online (Sandbox Code Playgroud)
虽然这看起来很简单,但我不确定如何处理CamelCaseText == false. 我已阅读CamelCaseNamingStrategy 类,但不知道在哪里禁用驼峰命名法。我的猜测是,我需要使用不同的命名策略类,例如CamelCaseNamingStrategy,DefaultNamingStrategy但我不确定此类的行为有何不同。
有人可以向我指出解释差异的文档,和/或帮助我了解在这种情况下使用哪种命名策略吗?
// Deprecated approach
new StringEnumConverter() { CamelCaseText = false };
// New approach
new StringEnumConverter() { NamingStrategy = ? };
Run Code Online (Sandbox Code Playgroud)
您可以new StringEnumConverter()不修改任何属性。
默认情况下,StringEnumConverter不会enum以任何方式转换名称。文档中对此进行了解释,StringEnumConverter.CamelCaseText其中已过时:
获取或设置一个值,该值指示写入的枚举文本是否应采用驼峰式大小写。默认值为
false。
如果您觉得需要设置 的值,NamingStrategy可以将其设置为null(默认值),或new DefaultNamingStrategy()。任一选择都将导致StringEnumConverter不修改enum名称。
| 归档时间: |
|
| 查看次数: |
3018 次 |
| 最近记录: |