2016-09-26 1 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から継承するか、内部的にロジックを再利用するバージョンを所有してください。

関連する問題