哪种列表/集合类型最适合在WCF数据契约中使用?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

在定义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不是一个选项,因为生成的类将无法创建集合。

用户回答回答于

不能在datacontract中使用接口类型,因为序列化程序不能使用接口类型属性。

可以使用具体类型,例如MyClass []或List

扫码关注云+社区