Skip to content

Commit

Permalink
fixes #32
Browse files Browse the repository at this point in the history
  • Loading branch information
AngelMunoz committed Feb 14, 2022
1 parent 5aa25af commit ee6789d
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions src/Mondocks.Net/Serialization.fs
Expand Up @@ -138,22 +138,30 @@ module Json =
writer.WriteStringValue(stringValue)
writer.WriteEndObject()

type BsonNullConverter() =
inherit JsonConverter<BsonNull>()
override _.Read(reader: byref<Utf8JsonReader>, typeToConvert: Type, options: JsonSerializerOptions) =
BsonNull.Value

override _.Write(writer: Utf8JsonWriter, value: BsonNull, options: JsonSerializerOptions) =
writer.WriteNullValue()

let private defaults =
let options = JsonSerializerOptions()
options.Converters.Add(JsonFSharpConverter())
options.DefaultIgnoreCondition <- JsonIgnoreCondition.WhenWritingDefault
options.Converters.Add(ObjectIdConverter())
options.Converters.Add(DateTimeConverter())
options.Converters.Add(DateTimeOffsetConverter())
options.Converters.Add(Decimal128Converter())
options.Converters.Add(DoubleConverter())
options.Converters.Add(Int64Converter())
options.Converters.Add(Int32Converter())
options.IgnoreNullValues <- true
options.Converters.Add(BsonNullConverter())
options

type Serializer() =
static member Serialize<'T>(value: 'T) =
JsonSerializer.Serialize<'T>(value, defaults)

static member Serialize<'T>(value: 'T, options) =
static member Serialize<'T>(value: 'T, options: JsonSerializerOptions) =
JsonSerializer.Serialize<'T>(value, options)

0 comments on commit ee6789d

Please sign in to comment.