2011-01-04 5 views
6

Hier ist eine der Methoden von meinem wcf Rest Dienst entfernen:WCF REST: Präfix "ArrayOf" für wcf Methode Antwort

[OperationContract] 
    [WebInvoke(UriTemplate = "getInvoices", Method = "POST", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml)] 
List<InvoiceRet> GetInvoices(GetInvoices getInvoices); 

Und es gibt Antwort im nächsten Format:

<ArrayOfInvoiceRet> 
    <InvoiceRet></InvoiceRet> 
    <InvoiceRet></InvoiceRet> 
    ... 
    <InvoiceRet></InvoiceRet> 
</ArrayOfInvoiceRet> 

So ändern Sie die Methode zum Zurückgeben der nächsten Antwort

Antwort

10

Sie müssen die vonabgeleitete benutzerdefinierte Sammlung implementierenund markieren es mit CollectionDataContractAttribute:

[CollectionDataContract] 
public class ListInvoice : List<InvoiceRet> 
{ } 

Verwenden Sie diese Sammlung als Rückgabetyp von Ihrem Betrieb. Here ist eine vollständige Beschreibung der Verwendung von Sammlungen in Datenverträgen.

+0

Vielen Dank, es hat Sinn gemacht! – Yara

+0

Diese Technik funktioniert nicht in WCF .net 4.5 und hat das gleiche Verhalten wie wenn es List ist – hB0