<PackageReference Include="NJsonSchema" Version="11.3.2" />

DiscriminatorSchemaProcessor

using NJsonSchema.Converters; using System; using System.Runtime.CompilerServices; namespace NJsonSchema.Generation.SchemaProcessors { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public class DiscriminatorSchemaProcessor : ISchemaProcessor { public Type BaseType { get; } public string Discriminator { get; } public DiscriminatorSchemaProcessor(Type baseType) : this(baseType, JsonInheritanceConverterAttribute.DefaultDiscriminatorName) { } public DiscriminatorSchemaProcessor(Type baseType, string discriminator) { BaseType = baseType; Discriminator = discriminator; } public void Process(SchemaProcessorContext context) { if (context.ContextualType.get_OriginalType() == BaseType) { JsonSchema schema = context.Schema; schema.Discriminator = Discriminator; schema.Properties[Discriminator] = new JsonSchemaProperty { Type = 64, IsRequired = true }; } } } }