C# WCF服务不会反序列化int[]或List

C# WCF服务不会反序列化int[]或List,c#,xml,wcf,deserialization,datacontract,C#,Xml,Wcf,Deserialization,Datacontract,我的WCF服务可以很好地用于JSON,但当我发送XML时,会出现以下错误 反序列化GetChecksObj类型的对象时出错。结束元素“CheckNumbers” 应为命名空间中的。从命名空间中找到元素“int”。 第4行,位置10 我更改了公共int[]checknumber;公开列出核对号码;查看是否会产生任何影响,并且不再给出错误,但反序列化列表为空 [DataContract(Namespace="")] public class GetChecksObj { [DataMembe

我的WCF服务可以很好地用于JSON,但当我发送XML时,会出现以下错误

反序列化GetChecksObj类型的对象时出错。结束元素“CheckNumbers” 应为命名空间中的。从命名空间中找到元素“int”。 第4行,位置10

我更改了公共int[]checknumber;公开列出核对号码;查看是否会产生任何影响,并且不再给出错误,但反序列化列表为空

[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>
它似乎不喜欢整数数组,但我不明白为什么。
有什么想法吗?

您是否尝试过将int[]CheckNumbers的EmitDefaultValue=False设置为空?没有,但EmitDefaultValue只定义了当属性为空时是否应序列化值。但是它不是空的,所以不会有什么不同。请尝试BodyStyle=WebMessageBodyStyle.Wrapped。
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/GetChecks", BodyStyle = WebMessageBodyStyle.Bare)]
Check[] GetChecks(GetChecksObj getChecksReq);