/// <summary> /// Walk the schema definition to find the parameters of the given message. /// </summary> /// <param name="serviceDescription"> /// <param name="messagePartName"> /// <returns></returns> private static Parameter[] GetParameters(ServiceDescription serviceDescription, string messagePartName) { List <Parameter> parameters = new List <Parameter>(); Types types = serviceDescription.Types; System.Xml.Schema.XmlSchema xmlSchema = types.Schemas[0]; foreach (object item in xmlSchema.Items) { if (item is System.Xml.Schema.XmlSchemaElement schemaElement && schemaElement.Name == messagePartName) { System.Xml.Schema.XmlSchemaType schemaType = schemaElement.SchemaType; if (schemaType is System.Xml.Schema.XmlSchemaComplexType complexType) { System.Xml.Schema.XmlSchemaParticle particle = complexType.Particle; if (particle is System.Xml.Schema.XmlSchemaSequence sequence) { foreach (System.Xml.Schema.XmlSchemaElement childElement in sequence.Items) { string parameterName = childElement.Name; string parameterType = childElement.SchemaTypeName.Name; parameters.Add(new Parameter(parameterName, parameterType)); } } } } } return(parameters.ToArray()); }
public virtual string ImportSchemaType(System.Xml.Schema.XmlSchemaType type, System.Xml.Schema.XmlSchemaObject context, System.Xml.Serialization.XmlSchemas schemas, System.Xml.Serialization.XmlSchemaImporter importer, System.CodeDom.CodeCompileUnit compileUnit, System.CodeDom.CodeNamespace mainNamespace, System.Xml.Serialization.CodeGenerationOptions options, System.CodeDom.Compiler.CodeDomProvider codeProvider) { }