WCF REST: удалить префикс «ArrayOf» для ответа метода wcf - PullRequest
6 голосов
/ 04 января 2011

Вот один из методов моей службы отдыха wcf:

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

И возвращает ответ в следующем формате:

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

Как изменить метод для возврата следующего ответа

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

1 Ответ

10 голосов
/ 04 января 2011

Вам нужно будет реализовать пользовательскую коллекцию, полученную из List<InvoiceRet>, и пометить ее как CollectionDataContractAttribute:

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

Используйте эту коллекцию как тип возврата из вашей операции. Здесь - полное описание использования коллекций в контрактах данных.

...