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>
Другие вопросы по тегам