Yara
Yara

Reputation: 4565

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>

Upvotes: 6

Views: 3538

Answers (1)

Ladislav Mrnka
Ladislav Mrnka

Reputation: 364399

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.

Upvotes: 10

Related Questions