2011-01-04 6 views
6

Aquí es uno de los métodos de mi servicio WCF resto:WCF REST: eliminar el prefijo "ArrayOf" para el WCF respuesta método

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

y devuelve la respuesta en el siguiente formato:

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

Cómo modificar el método para devolver la siguiente respuesta

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

Respuesta

10

Deberá implementar una recolección personalizada derivada de List<InvoiceRet> y marcarlo con CollectionDataContractAttribute:

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

Utilice esta colección como tipo de retorno de su operación. Here es una descripción completa del uso de colecciones en contratos de datos.

+0

¡Gracias, tiene sentido! – Yara

+0

Esta técnica no funciona para mí en WCF .net 4.5 y tiene el mismo comportamiento que si fuera List hB0

Cuestiones relacionadas