我在我们的服务器上运行了一个 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 服务结构看起来符合预期?