WCF Rest Datamember和Array问题

时间:2013-06-26 17:54:32

标签: c# arrays wcf rest datamember

我已经创建了一个WCF服务,该服务正在接收包含PackageID和ServiceCode的所有数据的XML结构。问题似乎是Track类中的公共RequestPackages []包。

如果我在下面的代码中将其更改为RequestPackages,则元素数据将传递到service方法,并将显示在PackageID / ServiceCode元素中。

如果我将它作为RequestPackages [],那么我可以在xml for Packages元素的调试中逐步完成:wcf.RequestPackages [0]和PackageID / ServiceCode不可用。我正在逐步调试以查看在访问服务方法时传递的xml数据。我不确定如何解决它,但我可能忽视了一些简单的事情。谢谢

以下是发送的Xml结构:

<Track>
  <Packages>
    <PackageId>1234567890</PackageId>
    <ServiceCode>123</ServiceCode>
  </Packages>
</Track>

以下是数据合同:

[DataContract(Namespace = "")]
[XmlArrayItemAttribute("Package")]
public partial class Track
{

    private RequestPackages[] packagesField;

    /// <remarks/>
    [DataMember(Order=0, Name="Package")]
    public RequestPackages[] Packages
    {
        get
        {
            return this.packagesField;
        }
        set
        {
            this.packagesField = value;
        }
    }
}

[DataContract(Namespace = "")]
[XmlSerializerFormat]
public partial class RequestPackages
{
    private string packageIdField;
    private string serviceCodeField;

    /// <remarks/>
    [DataMember(Order = 0)]
    [XmlElementAttribute]
    public string PackageId
    {
        get
        {
            return this.packageIdField;
        }
        set
        {
            this.packageIdField = value;
        }
    }

    /// <remarks/>
    [DataMember(Order=1)]
    [XmlElementAttribute]
    public string ServiceCode
    {
        get
        {
            return this.serviceCodeField;
        }
        set
        {
            this.serviceCodeField = value;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我错过了xml中的一个元素......

<Packages>
  <RequestPackages>
     <PackageId>1234567890</PackageId>
     <ServiceCode></ServiceCode>
  </RequestPackages>
</Packages>