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
};
}
}
}
}