WCF Rest Datamember и Array проблема
Я создал службу WCF, и служба получает структуру XML со всеми данными, кроме PackageID и ServiceCode. Кажется, проблема в общедоступных пакетах RequestPackages[] класса Track.
Если я изменю его на RequestPackages в приведенном ниже коде, тогда данные элемента будут переданы в метод service и будут отображаться в элементах PackageID/ServiceCode.
Если у меня есть это как RequestPackages[], то я получаю это пошаговое выполнение в отладке в xml для элемента 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 ответ
Мне не хватало элемента в XML...
<Packages>
<RequestPackages>
<PackageId>1234567890</PackageId>
<ServiceCode></ServiceCode>
</RequestPackages>
</Packages>