【发布时间】:2018-12-07 05:28:45
【问题描述】:
当using Newtonsoft.Json 时,我可以通过将转换器添加到顶级SerializerSettings 或将其提供给转换调用来完成我需要的工作 - 一切正常。
我希望提取一些全局转换器,以便在实际需要转换的相关位置以声明方式应用。
我知道以下技巧:-
- 类型级别
[JsonConverter(typeof(Converters.StringEnumConverter))]直接在类型X上 - 成员级别
[JsonConverter(typeof(Converters.StringEnumConverter))]iff 成员的类型为X - 项目级别
[JsonProperty(ItemConverterType=typeof(Converters.StringEnumConverter)]如果成员实际上是X的数组等
我遇到的问题是我使用的一些全局转换器在嵌套类型上运行,例如如果我有 Tuple<X[],Nullable<X>> 类型的成员,我无法表达 “如果您在处理此字段或其任何子字段时遇到 X,请进行转换” 语义,而不是获得 @987654330 @。
这样的“对于这棵树,也请使用这个转换器”机制存在吗?我想避免必须为我想要转换的任何内容定义顶级类型,然后使用 JsonConverter 标记该类型以解决此问题?
【问题讨论】:
标签: .net json json.net converters jsonconverter