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); } } } }