Dot-Net

哪種列表/集合類型最適合在 WCF 數據協定中使用?

  • February 27, 2009

在定義 WCF 數據協定時,應將哪種類型用於集合/列表?

  • 應該是 ICollection<T>、IList<T>、T[] 還是…?
  • 我應該使用介面類型還是具體類型?
  • 有哪些權衡需要考慮?

注意:我從客戶的角度回答這個問題 - 即/collectionType:&lt;type&gt;打開svcutil.exe(也可在 IDE 中使用)。

就個人而言,我傾向於保持簡單並使用List&lt;T&gt;. 如果您要進行大量數據綁定,BindingList&lt;T&gt;可能是一種選擇,但對於對象屬性,這通常是矯枉過正。數組讓生活變得非常艱難……避免它們;-p

請注意,由於 .NET 3.5 上的擴展方法,每個集合類型可用的功能都模糊了Enumerable

通常,Collection&lt;T&gt;當您認為您可能希望對集合進行子類化以使用virtual擴展點時,它很有用。這不是 WCF 的真正選擇。

如前所述,IList&lt;T&gt;除非您使用程序集共享,否則使用 etc 不是一個選項,因為生成的類將無法創建集合。

引用自:https://stackoverflow.com/questions/594499