假设我有一个记录类型:
type CountHolder = { Counter: int}
type NameCount = { Name: string; Count: CountHolder}
我正在寻找在反序列化以下 json 字符串之一(使用 JSON.NET)时为 Count
属性指定默认值的方法:
{"Name":"My Name","Count": null}
{"Name":"My Name"}
例如,我的默认值可以定义为
{ Counter : 0 }
如果我能在 JSON.NET 序列化管道中找到一个扩展点,允许我在运行时定义默认值,我猜这可以解决我的问题。
编辑
为了响应建议我修改记录类型以使Count
字段可选的评论 - 我宁愿不这样做,因为我的类型被 C# 代码使用。 通过使此字段成为我的代码的可选使用者,将被迫承担对FSharp.Core
的依赖。
你总是可以这样定义NameCount
:
type NameCount = { Name: string; Count: CountHolder option }
然后处理None
.