2014-01-17 37 views
0

簡單的問題,多種可能性:當客戶端請求列表時,WCF服務應該返回什麼?

  • ICollection<T>
  • IEnumerable<T>
  • List<T>
  • IList<T>
  • Array

什麼是超過對方的優點和缺點?是否存在性能/安全問題?

+0

無論如何,列表將作爲數組返回 –

+1

@Taumantis:對於JSON而言,這是正確的,但不適用於SOAP。 –

+0

@John Saunders很高興知道 –

回答

-2

一種基礎廣泛的問題,但它實際上取決於你如何消費客戶端上的對象。如果你只是把它轉儲到一個JSON數組中,一個數組可以正常工作,但是如果你需要其他實現具有的額外方法,請將你需要的那些特定對象序列化。

+1

-1:使用SOAP,服務返回的內容無關緊要。客戶決定如何接收它。該服務只是返回符合XSD「序列」的XML。客戶將決定這意味着什麼。問自己:Java客戶端將如何處理來自服務的返回值? –

+0

@JohnSaunders WCF可以返回包裝在SOAP響應中的JSON。 – ohmusama

+1

@ohmusama:我意識到這一點 - 我剛剛完成了一套這樣的服務。即使在JSON的情況下,也沒關係。我有服務返回'IEnumerable '和其他返回'列表',他們做出完美的JSON數組。 –

5

無論如何,它無論如何都會被序列化,所以服務返回真的沒有關係。但是如果你共享服務器和客戶端之間的接口,IEnumerable<T>是典型的,因爲它涵蓋了所有其他建議。如果你有一個有限的設置,你也可以使用IList<T>,但我會避免Array

+0

有趣的是,我經常在WCF/SOAP服務規範中看到Array。是的,我認爲IEnumerable是'正確'的方式。 – Acrotygma

相關問題