Dot-Net
哪種列表/集合類型最適合在 WCF 數據協定中使用?
在定義 WCF 數據協定時,應將哪種類型用於集合/列表?
- 應該是 ICollection<T>、IList<T>、T[] 還是…?
- 我應該使用介面類型還是具體類型?
- 有哪些權衡需要考慮?
注意:我從客戶的角度回答這個問題 - 即
/collectionType:<type>打開svcutil.exe(也可在 IDE 中使用)。就個人而言,我傾向於保持簡單並使用
List<T>. 如果您要進行大量數據綁定,BindingList<T>可能是一種選擇,但對於對象屬性,這通常是矯枉過正。數組讓生活變得非常艱難……避免它們;-p請注意,由於 .NET 3.5 上的擴展方法,每個集合類型可用的功能都模糊了
Enumerable。通常,
Collection<T>當您認為您可能希望對集合進行子類化以使用virtual擴展點時,它很有用。這不是 WCF 的真正選擇。如前所述,
IList<T>除非您使用程序集共享,否則使用 etc 不是一個選項,因為生成的類將無法創建集合。