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

Yar*_*ara 6 rest wcf serialization list response

这是我的wcf休息服务的方法之一:

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

它以下一种格式返回响应:

<ArrayOfInvoiceRet>
  <InvoiceRet></InvoiceRet>
  <InvoiceRet></InvoiceRet>
  ...
  <InvoiceRet></InvoiceRet>
</ArrayOfInvoiceRet>
Run Code Online (Sandbox Code Playgroud)

如何修改方法以返回下一个响应

<ListInvoice>
  <InvoiceRet></InvoiceRet>
  <InvoiceRet></InvoiceRet>
  ...
  <InvoiceRet></InvoiceRet>
</ListInvoice>
Run Code Online (Sandbox Code Playgroud)

Lad*_*nka 10

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

[CollectionDataContract]
public class ListInvoice : List<InvoiceRet>
{ }
Run Code Online (Sandbox Code Playgroud)

将此集合用作操作的返回类型.以下是在数据协定中使用集合的完整描述.