private Schema GenerateInlineSchema(DataContract dataContract, SchemaRepository schemaRepository) { if (dataContract.DataType == DataType.Unknown) { return(new Schema()); } if (dataContract.DataType == DataType.Object) { return(GenerateObjectSchema(dataContract, schemaRepository)); } if (dataContract.DataType == DataType.Array) { return(GenerateArraySchema(dataContract, schemaRepository)); } else { return(GeneratePrimitiveSchema(dataContract)); } }
private ISchema GeneratePropertySchema(DataProperty serializerMember, SchemaRepository schemaRepository) { var schema = GenerateSchemaForType(serializerMember.MemberType, schemaRepository); var customAttributes = serializerMember.MemberInfo?.GetCustomAttributes(true); var memberSummary = serializerMember.MemberInfo?.GetXmlDocsSummary(); if (!string.IsNullOrWhiteSpace(memberSummary) && schema is Schema) { (schema as Schema).Description = memberSummary; } if (serializerMember.MemberInfo != null && schema is Schema) { (schema as Schema).ApplyCustomAttributes(customAttributes); } if (!(schema is Reference)) { (schema as Schema).ReadOnly = serializerMember.IsReadOnly; (schema as Schema).WriteOnly = serializerMember.IsWriteOnly; } return(schema); }
public ISchema GenerateSchema(Type type, SchemaRepository schemaRepository, MemberInfo memberInfo = null, ParameterInfo parameterInfo = null) { var schema = GenerateSchemaForType(type, schemaRepository); return(schema); }