Рассмотрим F # фрагмент ниже:Сериализация F типа # Опция
type MyType = {
CrucialProperty: int
OptionalProperty: string option
}
let first = { CrucialProperty = 500; OptionalProperty = Some("Hello")}
let second = { CrucialProperty = 500; OptionalProperty = Some(null)}
let third = { CrucialProperty = 500; OptionalProperty = None}
Я хочу сделать сериализации этого типа, используя JSON.NET таким образом я получаю следующие строки соответственно, за исключением случаев, описанных выше:
{"CrucialProperty":500,"OptionalProperty":"Hello"}
{"CrucialProperty":500,"OptionalProperty":null}
{"CrucialProperty":500}
По существу, проблема сводится к тому, что можно включать/исключать свойство в сериализованном выходе на основе значения этого свойства.
Мне удалось найти несколько «OptionConverters» (например, here), но они, похоже, не делают то, что я ищу.