WCF服务不会反序列化int []或List <int> </int>

时间:2014-04-09 12:51:31

标签: c# xml wcf deserialization datacontract

我的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);

它似乎不喜欢整数数组,但我无法弄清楚为什么。 有什么想法吗?

0 个答案:

没有答案