WCF REST:为wcf方法响应删除前缀“ArrayOf”

时间:2011-01-04 11:09:15

标签: wcf list serialization rest response

以下是我的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 个答案:

答案 0 :(得分:10)

您需要实现从List<InvoiceRet>派生的自定义集合,并将其标记为CollectionDataContractAttribute

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

将此集合用作操作的返回类型。 Here是在数据合同中使用集合的完整描述。