2011-01-04 29 views
6

Burada wcf dinlenme hizmetimden bir yöntem:WCF REST: wcf yöntem yanıtı için "ArrayOf" önekini kaldır

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

Ve bir sonraki biçimde yanıt döndürür:

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

Bir sonraki yanıtı döndürmek için yöntem nasıl değiştirilir

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

cevap

10

dönmek için yöntem değiştirme Nasıl özel koleksiyonutüretilmiş uygulamak gerekecektirve CollectionDataContractAttribute ile işaretlemek:

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

kullanın Operasyonunuzun dönüş türü olarak bu koleksiyonu. Here, veri sözleşmelerinde koleksiyonları kullanmanın tam tanımıdır.

+0

Teşekkür ederim mantıklı! – Yara

+0

Bu teknik WCF .net 4.5'te benim için çalışmıyor ve Liste ile aynı davranışı var. – hB0