protected bool CreateMessage(MessageDescription message, int messageIndex, out Message wsdlMessage) { wsdlMessage = null; bool flag = true; if (this.ExportedMessages.WsdlMessages.ContainsKey(new MessageDescriptionDictionaryKey(this.contractContext.Contract, message))) { throw System.ServiceModel.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(System.ServiceModel.SR.GetString("MultipleCallsToExportContractWithSameContract"))); } TypedMessageKey key = null; OperationMessageKey key2 = null; if (message.IsTypedMessage) { key = new TypedMessageKey(message.MessageType, this.operation.DeclaringContract.Namespace, this.GetExtensionData()); if (this.ExportedMessages.TypedMessages.TryGetValue(key, out wsdlMessage)) { flag = false; } } else if (this.operation.OperationMethod != null) { key2 = new OperationMessageKey(this.operation, messageIndex); if (this.ExportedMessages.ParameterMessages.TryGetValue(key2, out wsdlMessage)) { flag = false; } } System.Web.Services.Description.ServiceDescription serviceDescription = this.contractContext.WsdlPortType.ServiceDescription; if (flag) { wsdlMessage = new Message(); wsdlMessage.Name = this.GetMessageName(message); serviceDescription.Messages.Add(wsdlMessage); if (message.IsTypedMessage) { this.ExportedMessages.TypedMessages.Add(key, wsdlMessage); } else if (key2 != null) { this.ExportedMessages.ParameterMessages.Add(key2, wsdlMessage); } } this.contractContext.GetOperationMessage(message).Message = new XmlQualifiedName(wsdlMessage.Name, wsdlMessage.ServiceDescription.TargetNamespace); this.ExportedMessages.WsdlMessages.Add(new MessageDescriptionDictionaryKey(this.contractContext.Contract, message), wsdlMessage); return(flag); }
protected bool CreateMessage(MessageDescription message, int messageIndex, out WsdlNS.Message wsdlMessage) { wsdlMessage = null; bool isNewMessage = true; if (ExportedMessages.WsdlMessages.ContainsKey(new MessageDescriptionDictionaryKey(contractContext.Contract, message))) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.MultipleCallsToExportContractWithSameContract))); TypedMessageKey typedMessageKey = null; OperationMessageKey messageKey = null; if (message.IsTypedMessage) { typedMessageKey = new TypedMessageKey(message.MessageType, operation.DeclaringContract.Namespace, this.GetExtensionData()); if (ExportedMessages.TypedMessages.TryGetValue(typedMessageKey, out wsdlMessage)) isNewMessage = false; } else if (operation.OperationMethod != null) { messageKey = new OperationMessageKey(operation, messageIndex); if (ExportedMessages.ParameterMessages.TryGetValue(messageKey, out wsdlMessage)) isNewMessage = false; } WsdlNS.ServiceDescription wsdl = contractContext.WsdlPortType.ServiceDescription; if (isNewMessage) { wsdlMessage = new WsdlNS.Message(); wsdlMessage.Name = GetMessageName(message); wsdl.Messages.Add(wsdlMessage); if (message.IsTypedMessage) ExportedMessages.TypedMessages.Add(typedMessageKey, wsdlMessage); else if (messageKey != null) ExportedMessages.ParameterMessages.Add(messageKey, wsdlMessage); } //Add Name to OperationMessage WsdlNS.OperationMessage wsdlOperationMessage = contractContext.GetOperationMessage(message); wsdlOperationMessage.Message = new XmlQualifiedName(wsdlMessage.Name, wsdlMessage.ServiceDescription.TargetNamespace); this.ExportedMessages.WsdlMessages.Add(new MessageDescriptionDictionaryKey(contractContext.Contract, message), wsdlMessage); return isNewMessage; }
protected bool CreateMessage(MessageDescription message, int messageIndex, out Message wsdlMessage) { wsdlMessage = null; bool flag = true; if (this.ExportedMessages.WsdlMessages.ContainsKey(new MessageDescriptionDictionaryKey(this.contractContext.Contract, message))) { throw System.ServiceModel.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(System.ServiceModel.SR.GetString("MultipleCallsToExportContractWithSameContract"))); } TypedMessageKey key = null; OperationMessageKey key2 = null; if (message.IsTypedMessage) { key = new TypedMessageKey(message.MessageType, this.operation.DeclaringContract.Namespace, this.GetExtensionData()); if (this.ExportedMessages.TypedMessages.TryGetValue(key, out wsdlMessage)) { flag = false; } } else if (this.operation.OperationMethod != null) { key2 = new OperationMessageKey(this.operation, messageIndex); if (this.ExportedMessages.ParameterMessages.TryGetValue(key2, out wsdlMessage)) { flag = false; } } System.Web.Services.Description.ServiceDescription serviceDescription = this.contractContext.WsdlPortType.ServiceDescription; if (flag) { wsdlMessage = new Message(); wsdlMessage.Name = this.GetMessageName(message); serviceDescription.Messages.Add(wsdlMessage); if (message.IsTypedMessage) { this.ExportedMessages.TypedMessages.Add(key, wsdlMessage); } else if (key2 != null) { this.ExportedMessages.ParameterMessages.Add(key2, wsdlMessage); } } this.contractContext.GetOperationMessage(message).Message = new XmlQualifiedName(wsdlMessage.Name, wsdlMessage.ServiceDescription.TargetNamespace); this.ExportedMessages.WsdlMessages.Add(new MessageDescriptionDictionaryKey(this.contractContext.Contract, message), wsdlMessage); return flag; }