在定义WCF数据协定时,应该使用哪种类型的集合/列表?
应该是ICollection
我应该使用接口类型还是具体类型?
有什么权衡需要考虑?
Marc Gravell.. 13
注意:我从客户的角度回答这个问题- 即/collectionType:
开启svcutil.exe
(也可在IDE中使用).
就个人而言,我倾向于保持简单和使用List
.如果你要做很多数据绑定,BindingList
可能是一个选项,但对于对象属性,它通常是矫枉过正.阵列让生活变得非常艰难......避免它们;-p
请注意,使用.NET 3.5,每个集合类型可用的功能都会模糊,这要归功于扩展方法Enumerable
.
通常,Collection
当您认为可能要将集合子类化以使用virtual
扩展点时,此选项很有用.对于WCF来说,这不是一个真正的选择.
如前所述,IList
除非您使用程序集共享,否则使用etc不是一个选项,因为生成的类将无法创建集合.
注意:我从客户的角度回答这个问题- 即/collectionType:
开启svcutil.exe
(也可在IDE中使用).
就个人而言,我倾向于保持简单和使用List
.如果你要做很多数据绑定,BindingList
可能是一个选项,但对于对象属性,它通常是矫枉过正.阵列让生活变得非常艰难......避免它们;-p
请注意,使用.NET 3.5,每个集合类型可用的功能都会模糊,这要归功于扩展方法Enumerable
.
通常,Collection
当您认为可能要将集合子类化以使用virtual
扩展点时,此选项很有用.对于WCF来说,这不是一个真正的选择.
如前所述,IList
除非您使用程序集共享,否则使用etc不是一个选项,因为生成的类将无法创建集合.