コード例 #1
0
            internal void ExportMessageBinding(OperationDescription operation, Type messageContractExporterType)
            {
                bool             flag;
                bool             flag2;
                OperationBinding operationBinding = this.endpointContext.GetOperationBinding(operation);

                if (GetStyleAndUse(operation, messageContractExporterType, out flag, out flag2))
                {
                    SoapOperationBinding binding2 = SoapHelper.GetOrCreateSoapOperationBinding(this.endpointContext, operation, this.exporter);
                    if (binding2 != null)
                    {
                        binding2.Style = flag ? SoapBindingStyle.Rpc : SoapBindingStyle.Document;
                        if (flag)
                        {
                            SoapBinding binding3 = (SoapBinding)this.endpointContext.WsdlBinding.Extensions.Find(typeof(SoapBinding));
                            binding3.Style = binding2.Style;
                        }
                        binding2.SoapAction = operation.Messages[0].Action;
                        foreach (MessageDescription description in operation.Messages)
                        {
                            Message        message;
                            MessageBinding messageBinding = this.endpointContext.GetMessageBinding(description);
                            if (this.exportedMessages.WsdlHeaderMessages.TryGetValue(new MessageContractExporter.MessageDescriptionDictionaryKey(this.endpointContext.Endpoint.Contract, description), out message))
                            {
                                XmlQualifiedName messageName = new XmlQualifiedName(message.Name, message.ServiceDescription.TargetNamespace);
                                foreach (MessageHeaderDescription description2 in description.Headers)
                                {
                                    if (!description2.IsUnknownHeaderCollection)
                                    {
                                        this.ExportMessageHeaderBinding(description2, messageName, flag2, messageBinding);
                                    }
                                }
                            }
                            this.ExportMessageBodyBinding(description, flag, flag2, messageBinding);
                        }
                        foreach (FaultDescription description3 in operation.Faults)
                        {
                            this.ExportFaultBinding(description3, flag2, operationBinding);
                        }
                    }
                }
            }