我的WCF服务适用于JSON,但是当我发送XML时,我得到以下错误。
反序列化GetChecksObj类型的对象时出错。结束元素'CheckNumbers' 来自命名空间''预期。从命名空间''找到元素'int'。 第4行,第10位。
我将public int[] CheckNumbers;
更改为public List<int> CheckNumbers;
以查看它是否会产生任何影响,并且不会再出现错误,但反序列化列表为空。
[DataContract(Namespace="")]
public class GetChecksObj
{
[DataMember(Name = "CheckNumbers", EmitDefaultValue = true, IsRequired = true, Order = 1)]
public int[] CheckNumbers;
[DataMember(Name = "BusinessDate", EmitDefaultValue = true, IsRequired = true, Order = 2)]
public DateTime BusinessDate;
[DataMember(Name = "LocationID", EmitDefaultValue = true, IsRequired = true, Order = 3)]
public int LocationID;
}
我发送的XML如下:
<GetChecksObj xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="">
<CheckNumbers>
<int>1001</int>
<int>1002</int>
<int>1003</int>
</CheckNumbers>
<BusinessDate>2014-04-09T00:00:00+01:00</BusinessDate>
<LocationID>123456</LocationID>
</GetChecksObj>
这是我的合同
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/GetChecks", BodyStyle = WebMessageBodyStyle.Bare)]
Check[] GetChecks(GetChecksObj getChecksReq);
它似乎不喜欢整数数组,但我无法弄清楚为什么。 有什么想法吗?