protected override void ExportBody(int messageIndex, object state) { MessageDescription messageDescription = base.operation.Messages[messageIndex]; string name = base.contractContext.WsdlPortType.Name; string targetNamespace = base.contractContext.WsdlPortType.ServiceDescription.TargetNamespace; MessageContractExporter.MessageDescriptionDictionaryKey key = new MessageContractExporter.MessageDescriptionDictionaryKey(base.contractContext.Contract, messageDescription); Message message = base.ExportedMessages.WsdlMessages[key]; System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.OperationReflector reflector = (System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.OperationReflector)state; XmlMembersMapping membersMapping = null; if (messageIndex == 0) { membersMapping = reflector.Request.BodyMapping; } else { membersMapping = reflector.Reply.BodyMapping; } if (membersMapping != null) { bool isDocWrapped = !reflector.IsRpc && (messageDescription.Body.WrapperName != null); this.ExportMembersMapping(membersMapping, message, false, reflector.IsEncoded, reflector.IsRpc, isDocWrapped, false); if (reflector.IsRpc) { base.AddParameterOrder(base.operation.Messages[messageIndex]); base.ExportedMessages.WrapperNamespaces.Add(key, membersMapping.Namespace); } } }
public override bool Equals(object obj) { MessageContractExporter.MessageDescriptionDictionaryKey key = obj as MessageContractExporter.MessageDescriptionDictionaryKey; return(((key != null) && (key.MessageDescription == this.MessageDescription)) && (key.Contract == this.Contract)); }