1

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

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

如果我将其设置为 RequestPackages[],那么我会在 Packages Element 的 xml 中进行调试: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;
        }
    }
}
4

1 回答 1

0

我在 xml 中缺少一个元素...

<Packages>
  <RequestPackages>
     <PackageId>1234567890</PackageId>
     <ServiceCode></ServiceCode>
  </RequestPackages>
</Packages>
于 2013-06-27T15:40:47.740 回答