Skip to content

Conversation

@david-brink-talogy
Copy link
Contributor

System.Text.Json supports non-string discriminators using JsonDerivedType. This PR stringifies the discriminator value.

Fixes #1723

From https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/polymorphism?pivots=dotnet-8-0#mix-and-match-type-discriminator-formats

[JsonDerivedType(typeof(ThreeDimensionalPoint), typeDiscriminator: 3)]
[JsonDerivedType(typeof(FourDimensionalPoint), typeDiscriminator: "4d")]
public class BasePoint
{
    public int X { get; set; }
    public int Y { get; set; }
}

public class ThreeDimensionalPoint : BasePoint
{
    public int Z { get; set; }
}

public sealed class FourDimensionalPoint : ThreeDimensionalPoint
{
    public int W { get; set; }
}

@RicoSuter RicoSuter merged commit 590632a into RicoSuter:master Nov 19, 2024
@david-brink-talogy david-brink-talogy deleted the features/stj_integer_discriminator branch November 22, 2024 01:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

System.Text.Json TypeDiscriminator property type is not string

2 participants