WCF SOAP 接收空列表
WCF SOAP receive empty list
我有一个 Android 应用程序和一个 WCF 服务来存储数据。我尝试使用 Android 应用程序(使用 kSOAP2)向服务发送请求。
一切正常,但是..当我尝试向服务发送列表(简单字符串或整数列表)时,WCF 服务收到消息但列表始终为空!
我的 SOAP 消息是这样的:
<MyList>
<int>12</int>
<int>50</int>
</MyList>
客户端或服务没有错误...但是列表总是空的,我不知道为什么。
有人知道 WCF 列表的正确格式吗?
提前致谢。
编辑:
我的服务界面:
[ServiceContract(Namespace = MyService.NamespaceV3)]
public interface IMyService
{
[OperationContract]
void MarkMessagesAsRead(List<int> ids, DateTime readDate, int employeeId);
}
参数 readDate 和 employeeId 正常工作,但列表 ids 始终为空(不是 null 而是空的)。
编辑 2 :
我的完整请求是:
<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/">
<v:Header />
<v:Body>
<MarkMessagesAsRead xmlns="http://schemas.xxx.fr/Mobile">
<ids><int>10293</int><int>10295</int></ids>
<readDate i:type="d:DateTime">2015-10-19T16:32:44.04</readDate>
<employeeId i:type="d:int">18572</employeeId>
</MarkMessagesAsRead>
</v:Body>
</v:Envelope>
好的,我找到了解决方案:我只需将正确的名称空间添加到列表中的 "int" 元素即可。
用于数组和列表的命名空间是:http://schemas.microsoft.com/2003/10/Serialization/Arrays
我有一个 Android 应用程序和一个 WCF 服务来存储数据。我尝试使用 Android 应用程序(使用 kSOAP2)向服务发送请求。 一切正常,但是..当我尝试向服务发送列表(简单字符串或整数列表)时,WCF 服务收到消息但列表始终为空!
我的 SOAP 消息是这样的:
<MyList>
<int>12</int>
<int>50</int>
</MyList>
客户端或服务没有错误...但是列表总是空的,我不知道为什么。 有人知道 WCF 列表的正确格式吗?
提前致谢。
编辑:
我的服务界面:
[ServiceContract(Namespace = MyService.NamespaceV3)]
public interface IMyService
{
[OperationContract]
void MarkMessagesAsRead(List<int> ids, DateTime readDate, int employeeId);
}
参数 readDate 和 employeeId 正常工作,但列表 ids 始终为空(不是 null 而是空的)。
编辑 2 :
我的完整请求是:
<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/">
<v:Header />
<v:Body>
<MarkMessagesAsRead xmlns="http://schemas.xxx.fr/Mobile">
<ids><int>10293</int><int>10295</int></ids>
<readDate i:type="d:DateTime">2015-10-19T16:32:44.04</readDate>
<employeeId i:type="d:int">18572</employeeId>
</MarkMessagesAsRead>
</v:Body>
</v:Envelope>
好的,我找到了解决方案:我只需将正确的名称空间添加到列表中的 "int" 元素即可。
用于数组和列表的命名空间是:http://schemas.microsoft.com/2003/10/Serialization/Arrays