简体   繁体   English

在WCF XML序列化中创建自定义肥皂对象

[英]Creating custom soap object in WCF XML serialization

I am trying to create a SOAP object from WCF by XML serialization, For that am facing issue like some serialization doesn't met my expected output. 我正在尝试通过XML序列化从WCF创建SOAP对象,为此面临的问题是某些序列化未达到我的预期输出。 I want to create a same WSDL file to support my old clients. 我想创建一个相同的WSDL文件来支持我的旧客户端。

This is what I am getting soap request: 这是我收到的肥皂请求:

<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <areStatusComplete xmlns="http://tempuri.org/">
      <listIds>
        <string>12258</string>
        <string>478526</string>
      </listIds>
    </areStatusComplete>
  </s:Body>

Expected output is : 预期输出为:

 <soap:Body>
    <ns1:areStatusComplete xmlns:ns1="http://tempuri.org/">
      <listIds>88355</listIds>
      <listIds>88356</listIds>
    </ns1:areStatusComplete>
  </soap:Body>

C# code for data contract is: 数据合同的C#代码为:

[System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.2612.0")]
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "")]
    [System.ServiceModel.MessageContractAttribute(WrapperName = "areStatusComplete", WrapperNamespace = "", IsWrapped = true)]
    public class areStatusComplete
    {
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace = "", Order = 0)]
        [System.Xml.Serialization.XmlElementAttribute("listIds", Form = System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable = true, Order = 1)]
        public string[] listIds { get; set; }


        [System.ServiceModel.MessageBodyMemberAttribute(Namespace = "", Order = 1)]
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string system;

        [System.ServiceModel.MessageBodyMemberAttribute(Namespace = "", Order = 2)]
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string user;

        public areStatusComplete ()
        {
        }

        public areStatusComplete (string[] listIds, string system, string user)
        {
            this.listIds = listIds;
            this.system = system;
            this.user = user;
        }
    }

Service Contract code: 服务合同代码:

[OperationContract]
        areStatusCompleteResponse areStatusComplete (string[] listIds, string system, string user);

Let us know the exact error message. 让我们知道确切的错误消息。 from what i see it is expecting an array of listIds a custom C# class with the name listids needs to be created, and that needs to be a inner property of areStatusComplete class 从我所看到的是期望一个listIds数组需要创建一个名称为listids的自定义C#类,并且该类必须是areStatusComplete类的内部属性

public class areStatusComplete 
{
  public ListIds listIds {..}

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM