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);
                }
            }
        }
Example #2
0
 public override bool Equals(object obj)
 {
     MessageContractExporter.MessageDescriptionDictionaryKey key = obj as MessageContractExporter.MessageDescriptionDictionaryKey;
     return(((key != null) && (key.MessageDescription == this.MessageDescription)) && (key.Contract == this.Contract));
 }