2016-09-26 2 views
0

Wir verwenden Json.Net Schema und erfordern mehrere Generation Provider. Wenn wir jedoch mehr als einen Generationsanbieter angeben, scheint nur der letzte in der Liste verwendet zu werden.Wie verwende ich mehrere Schema GenerationProvider

Hier ist ein Beispiel, in dem nur ObjectNotNullableGenerationProvider verwendet wird und StringEnumGeneration ignoriert wird.

Jedes Beispiel eines Beispiels von mehreren Anbietern oder Hilfe, warum dies nicht funktioniert, wäre willkommen.

Beispiel:

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

Antwort

0

Die GetSchema Methode auf JSchemaGenerationProvider gibt ein neues Schema. Nur der erste übereinstimmende Schemagenerierungsanbieter wird aufgerufen und sein Schema wird verwendet.

Sie könnten den Quellcode von StringEnumGenerationProvider (verfügbar here) nehmen und haben Sie eine eigene Version, die entweder von ObjectNotNullableGenerationProvider erbt oder ihre Logik intern wiederverwendet.

Verwandte Themen