Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WCF REST: remove prefix "ArrayOf" for wcf method response

Here is one of the methods from my wcf rest service:

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

And it returns response in the next format:

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

How to modify method to return the next response

<ListInvoice>
  <InvoiceRet></InvoiceRet>
  <InvoiceRet></InvoiceRet>
  ...
  <InvoiceRet></InvoiceRet>
</ListInvoice>
like image 514
Yara Avatar asked Jan 04 '11 11:01

Yara


1 Answers

You will need to implement custom collection derived from List<InvoiceRet> and mark it with CollectionDataContractAttribute:

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

Use this collection as return type from your operation. Here is full description of using collections in data contracts.

like image 81
Ladislav Mrnka Avatar answered Nov 02 '22 23:11

Ladislav Mrnka