我已经创建了一个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;
}
}
}
答案 0 :(得分:0)
我错过了xml中的一个元素......
<Packages>
<RequestPackages>
<PackageId>1234567890</PackageId>
<ServiceCode></ServiceCode>
</RequestPackages>
</Packages>