如何使用多个模式GenerationProviders

时间:2016-09-26 20:56:25

标签: json.net

我们正在使用Json.Net Schema并需要多个生成提供程序。 但是,当我们指定多个生成器时,似乎只使用列表中的最后一个。

以下是仅使用ObjectNotNullableGenerationProvider并忽略StringEnumGeneration的示例。

多个提供者的示例的任何示例或帮助解释为什么这不起作用将不胜感激。

示例:

var generator = new JSchemaGenerator
    {
        SchemaReferenceHandling = SchemaReferenceHandling.None,
        DefaultRequired = Required.Default,
    };

generator.GenerationProviders.Add(new StringEnumGenerationProvider());
generator.GenerationProviders.Add(new ObjectNotNullableGenerationProvider());

var jsonSchema = generator.Generate(typeof(SchemaTest));

1 个答案:

答案 0 :(得分:0)

JSchemaGenerationProvider上的GetSchema方法返回新架构。仅调用第一个匹配的模式生成提供程序并使用其模式。

您可以做的是从StringEnumGenerationProvider(可用here)获取源代码并拥有自己的版本,该版本可以继承自ObjectNotNullableGenerationProvider,也可以在内部重用其逻辑。