private async Task GenerateEnum <TSchemaType>( TSchemaType schema, Type type, IEnumerable <Attribute> parentAttributes, JsonTypeDescription typeDescription, JsonSchemaResolver schemaResolver) where TSchemaType : JsonSchema4, new() { if (type.Name == "Nullable`1") #if !LEGACY { type = type.GenericTypeArguments[0]; } #else { type = type.GetGenericArguments()[0]; } #endif var isIntegerEnumeration = typeDescription.Type == JsonObjectType.Integer; if (schemaResolver.HasSchema(type, isIntegerEnumeration)) { schema.Reference = schemaResolver.GetSchema(type, isIntegerEnumeration); } else if (schema.GetType() == typeof(JsonSchema4)) { LoadEnumerations(type, schema, typeDescription); typeDescription.ApplyType(schema); schema.Description = await type.GetXmlSummaryAsync().ConfigureAwait(false); schemaResolver.AddSchema(type, isIntegerEnumeration, schema); } else { schema.Reference = await GenerateAsync(type, parentAttributes, schemaResolver).ConfigureAwait(false); } }
private async Task GenerateArray <TSchemaType>( TSchemaType schema, Type type, JsonTypeDescription typeDescription, JsonSchemaResolver schemaResolver) where TSchemaType : JsonSchema4, new() { typeDescription.ApplyType(schema); var itemType = type.GetEnumerableItemType(); if (itemType != null) { schema.Item = await GenerateWithReferenceAndNullability <JsonSchema4>( #pragma warning disable 1998 itemType, null, false, schemaResolver, async (s, r) => #pragma warning restore 1998 { if (Settings.GenerateXmlObjects) { s.GenerateXmlObjectForItemType(itemType); } }).ConfigureAwait(false); } else { schema.Item = JsonSchema4.CreateAnySchema(); } }