-
Notifications
You must be signed in to change notification settings - Fork 48
Open
Description
I am writing an asp.net webapi program and in the setup section I added Services.AddJsonOptions( ... JsonFSharpOptions). The options is WithUnionInternalTag, which is used for default serialization. But for individual types, you need to use Untagged serialization.
I found that [<JsonFSharpConverter(UnionEncoding=(JsonUnionEncoding.Untagged))>] Attribute doesn't seem to work.
Code version information:
<TargetFramework>net8.0</TargetFramework>
<PackageReference Include="FSharp.SystemTextJson" Version="1.2.42" />Test Code:
[<JsonFSharpConverter(UnionEncoding=(JsonUnionEncoding.Untagged))>]
type Untagged1 = A of int | B of string
[<Fact>]
let ``test tag`` () =
let optInternalTag =
JsonFSharpOptions()
.WithUnionInternalTag() // <-
.WithUnionAllowUnorderedTag()
.WithUnionUnwrapFieldlessTags()
.WithUnwrapOption()
.ToJsonSerializerOptions()
let b = B "bbb"
let jsonB = JsonSerializer.Serialize(b, optInternalTag)
let valueB = JsonSerializer.Deserialize<Untagged1>("bbb", optInternalTag)
How should I configure it so that I can use options as the default serialization and Attribute as the individually specified serialization in an asp.net application?
Metadata
Metadata
Assignees
Labels
No labels
