Example #1
0
        void CreateLiteralMessage(Message message, MessageBinding messageBinding, XmlMembersMapping members, bool wrapped)
        {
            if (members.Count == 1 && members[0].Any && members[0].ElementName.Length == 0 && !wrapped)
            {
                string      typeName = SchemaExporter.ExportAnyType(members[0].Namespace);
                MessagePart part     = new MessagePart();
                part.Name = members[0].MemberName;
                part.Type = new XmlQualifiedName(typeName, members[0].Namespace);
                message.Parts.Add(part);
            }
            else
            {
                SchemaExporter.ExportMembersMapping(members);
                if (wrapped)
                {
                    MessagePart part = new MessagePart();
                    part.Name    = "parameters";
                    part.Element = new XmlQualifiedName(members.ElementName, members.Namespace);
                    message.Parts.Add(part);
                }
                else
                {
                    for (int i = 0; i < members.Count; i++)
                    {
                        XmlMemberMapping member = members[i];
                        MessagePart      part   = new MessagePart();
                        part.Name    = member.MemberName;
                        part.Element = new XmlQualifiedName(member.ElementName, member.Namespace);
                        message.Parts.Add(part);
                    }
                }
            }

            messageBinding.Extensions.Add(CreateSoapBodyBinding(SoapBindingUse.Literal, null));
        }
 void CreateLiteralMessage(Message message, MessageBinding messageBinding, XmlMembersMapping members, bool wrapped, bool rpc)
 {
     if (members.Count == 1 && members[0].Any && members[0].ElementName.Length == 0 && !wrapped)
     {
         string      typeName = SchemaExporter.ExportAnyType(members[0].Namespace);
         MessagePart part     = new MessagePart();
         part.Name = members[0].MemberName;
         part.Type = new XmlQualifiedName(typeName, members[0].Namespace);
         message.Parts.Add(part);
     }
     else
     {
         SchemaExporter.ExportMembersMapping(members, !rpc);
         if (wrapped)
         {
             MessagePart part = new MessagePart();
             part.Name    = "parameters";
             part.Element = new XmlQualifiedName(members.XsdElementName, members.Namespace);
             message.Parts.Add(part);
         }
         else
         {
             for (int i = 0; i < members.Count; i++)
             {
                 XmlMemberMapping member = members[i];
                 MessagePart      part   = new MessagePart();
                 if (rpc)
                 {
                     // Generate massage part with the type attribute
                     if (member.TypeName == null || member.TypeName.Length == 0)
                     {
                         throw new InvalidOperationException(Res.GetString(Res.WsdlGenRpcLitAnonimousType, Method.DeclaringType.Name, Method.Name, member.MemberName));
                     }
                     part.Name = member.XsdElementName;
                     part.Type = new XmlQualifiedName(member.TypeName, member.TypeNamespace);
                 }
                 else
                 {
                     part.Name    = XmlConvert.EncodeLocalName(member.MemberName);
                     part.Element = new XmlQualifiedName(member.XsdElementName, member.Namespace);
                 }
                 message.Parts.Add(part);
             }
         }
     }
     messageBinding.Extensions.Add(CreateSoapBodyBinding(SoapBindingUse.Literal, rpc ? members.Namespace : null));
 }