2011-01-04 7 views
6

Ecco uno dei metodi del mio servizio WCF riposo:WCF REST: rimuovere il prefisso "ArrayOf" per il metodo di WCF risposta

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

e restituisce la risposta nel formato seguente:

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

Come modificare il metodo per restituire la risposta successiva

<ListInvoice> 
    <InvoiceRet></InvoiceRet> 
    <InvoiceRet></InvoiceRet> 
    ... 
    <InvoiceRet></InvoiceRet> 
</ListInvoice> 

risposta

10

È necessario implementare la raccolta personalizzata derivata da List<InvoiceRet> e segnare con CollectionDataContractAttribute:

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

Utilizzare questa collezione come tipo di ritorno dalla vostra operazione. Here è una descrizione completa dell'utilizzo delle raccolte nei contratti di dati.

+0

Grazie, ha avuto senso! – Yara

+0

Questa tecnica non funziona per me in WCF .net 4.5 e ha lo stesso comportamento come se fosse Elenco hB0

Problemi correlati