private void WriteServiceDescription(XmlWriter writer) { var serviceDescription = new ServiceDescription { TargetNamespace = protocol.ProducerNamespace }; var standardHeader = new Message { Name = headerDefinition.MessageName }; foreach (var requiredHeader in headerDefinition.RequiredHeaders) { standardHeader.Parts.Add(new MessagePart { Name = requiredHeader.LocalName, Element = new XmlQualifiedName(requiredHeader.LocalName, requiredHeader.NamespaceName) }); } serviceDescription.Messages.Add(standardHeader); foreach (var schema in BuildSchemas(protocol.ProducerNamespace, serviceDescription.Messages)) { serviceDescription.Types.Schemas.Add(schema); } serviceDescription.PortTypes.Add(portType); binding.Extensions.Add(protocol.Style.CreateSoapBinding()); serviceDescription.Bindings.Add(binding); servicePort.Extensions.Add(new SoapAddressBinding { Location = "http://INSERT_CORRECT_SERVICE_URL" }); serviceDescription.Services.Add(service); AddServiceDescriptionNamespaces(serviceDescription); schemaDefinitionProvider.ExportServiceDescription(serviceDescription); writer.WriteStartDocument(); serviceDescription.Write(writer); writer.WriteEndDocument(); writer.Flush(); }