コード例 #1
0
        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();
        }