У меня была такая же проблема сегодня, я решил ее путем создания пользовательских Encoder<'T>
и Decoder<T>
.Как ни странно, это было не нужно месяц назад, и я бы поклялся, что ничего не обновлял.
Вот так выглядит кодировщик, вы можете использовать любой JSON в качестве возвращаемого значения.
open Thoth.Json.Net
module UnitEncoder =
let encoder = fun _ -> JsonValue.Parse("null")
let decoder = fun _ _ -> Ok ()
Вы можете определить сериализатор следующим образом
let extraCoders =
Extra.empty
|> Extra.withDecimal
|> Extra.withCustom UnitEncoder.encoder UnitEncoder.decoder
let serializer = Thoth.Json.Giraffe.ThothSerializer(extra = extraCoders)
и зарегистрировать его как службу как обычно
services.AddSingleton<Giraffe.Serialization.Json.IJsonSerializer>(CN.ReportingServices.API.Serialization.serializer) |> ignore