2016-09-26 23 views
0

我們正在使用Json.Net架構並需要多代提供者。 但是,當我們指定多個提供者時,似乎只使用列表中的最後一個。如何使用多個架構GenerationProviders

以下是僅使用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)); 

回答

0

JSchemaGenerationProviderGetSchema方法返回一個新的架構。只調用第一個匹配的模式生成提供程序並使用其模式。

你可以做的是從StringEnumGenerationProvider(可用here)獲取源代碼,並擁有自己的版本,它可以從ObjectNotNullableGenerationProvider繼承,也可以在其內部重用其邏輯。