0

我在我们的服务器上运行了一个 asp.net Web 服务 (.asmx),它基本上返回一个包含用户列表的结果对象。结构如下所示:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getUsersResponse xmlns="http://www.mycompany.com/">
      <getUsersResult>
        <userList>
          <clsUser>
            <firstName>string</firstName>
            <lastName>string</lastName>
            <idNumber>int</idNumber>
          </clsUser>
          <clsUser>
            <firstName>string</firstName>
            <lastName>string</lastName>
            <idNumber>int</idNumber>
          </clsUser>
        </userList>
        <faultResponse>
          <faultOccurred>boolean</faultOccurred>
          <faultDescription>string</faultDescription>
        </faultResponse>
      </getUsersResult>
    </getUsersResponse>
  </soap:Body>
</soap:Envelope>

这很好用,但我想在我的clsUser班级中添加一个列表。所以我想从这个改变它:

using System;
using System.Collections.Generic;
using System.Web;

[Serializable]
public class clsUser
{
    public string firstName;
    public string lastName;
    public int idNUmber
}

对此:

using System;
using System.Collections.Generic;
using System.Web;

[Serializable]
public class clsUser
{
    public string firstName;
    public string lastName;
    public int idNumber

    public List<clsExtraData> extraDataList;
}

其中clsExtraData包含一些字符串:

using System;
using System.Collections.Generic;
using System.Web;

[Serializable]
public class clsExtraData
{
    public string description;
    public string data;
}

所以我希望我的结构看起来像下面这样:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getUsersResponse xmlns="http://www.mycompany.com/">
      <getUsersResult>
        <userList>
          <clsUser>
            <firstName>string</firstName>
            <lastName>string</lastName>
            <idNumber>int</idNumber>
            <extraDataList>
               <description>string</description>
               <data>string</data>
            </extraDataList>
          </clsUser>
          <clsUser>
            <firstName>string</firstName>
            <lastName>string</lastName>
            <idNumber>int</idNumber>
            <extraDataList>
               <description>string</description>
               <data>string</data>
            </extraDataList>
          </clsUser>
        </userList>
        <faultResponse>
          <faultOccurred>boolean</faultOccurred>
          <faultDescription>string</faultDescription>
        </faultResponse>
      </getUsersResult>
    </getUsersResponse>
  </soap:Body>
</soap:Envelope>

但相反,我得到以下信息:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getUsersResponse xmlns="http://www.mycompany.com/">
      <getUsersResult>
        <userList>
          <clsUser>
            <firstName>string</firstName>
            <lastName>string</lastName>
            <idNumber>int</idNumber>
            <extraDataList xsi:nil="true" />
          </clsUser>
          <clsUser>
            <firstName>string</firstName>
            <lastName>string</lastName>
            <idNumber>int</idNumber>
            <extraDataList xsi:nil="true" />
          </clsUser>
        </userList>
        <faultResponse>
          <faultOccurred>boolean</faultOccurred>
          <faultDescription>string</faultDescription>
        </faultResponse>
      </getUsersResult>
    </getUsersResponse>
  </soap:Body>
</soap:Envelope>

我们的 Web 服务用户将围绕这个 Web 服务结构设计他们的客户,如果它显示出来,他们将<extraDataList xsi:nil="true" />如何知道在extraDataList? 如何使我的 Web 服务结构看起来符合预期?

4

1 回答 1

1

如果您发布 WSDL,我很确定有一个链接解释了 extraDataList 中的值和字段

于 2013-11-13T15:45:45.853 回答