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

DiscriminatorSchemaProcessor

using NJsonSchema.Converters; using System; namespace NJsonSchema.Generation.SchemaProcessors { public class DiscriminatorSchemaProcessor : ISchemaProcessor { public Type BaseType { get; } public string Discriminator { get; } public DiscriminatorSchemaProcessor(Type baseType) : this(baseType, JsonInheritanceConverter.DefaultDiscriminatorName) { } public DiscriminatorSchemaProcessor(Type baseType, string discriminator) { BaseType = baseType; Discriminator = discriminator; } public void Process(SchemaProcessorContext context) { if (context.Type == BaseType) { JsonSchema schema = context.Schema; schema.Discriminator = Discriminator; schema.Properties[Discriminator] = new JsonSchemaProperty { Type = JsonObjectType.String, IsRequired = true }; } } } }