.net - 哪种列表/集合类型最适合在 WCF 数据协定中使用?

标签 .net wcf datacontract

在定义 WCF 数据协定时,应将哪种类型用于集合/列表?

  • 应该是 ICollection,
    IList、T[] 还是...?
  • 我应该使用接口(interface)类型还是具体类型?
  • 有哪些权衡需要考虑?
  • 最佳答案

    注意:我从 回答这个问题客户透视图 - 即 /collectionType:<type>开启svcutil.exe (在 IDE 中也可用)。

    就个人而言,我倾向于保持简单并使用 List<T> .如果您要进行大量数据绑定(bind),BindingList<T>可能是一种选择,但对于对象属性,它通常是矫枉过正的。数组让生活变得非常艰难......避免它们;-p

    请注意,由于 Enumerable 上的扩展方法,在 .NET 3.5 中每个集合类型可用的功能都变得模糊了。 .

    通常情况下,Collection<T>当您认为您可能希望对集合进行子类化以使用 virtual 时很有用扩展点。这不是 WCF 的真正选择。

    如前所述,使用 IList<T>除非您使用程序集共享,否则等不是一个选项,因为生成的类将无法创建集合。

    关于.net - 哪种列表/集合类型最适合在 WCF 数据协定中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/594499/

    相关文章:

    c# - 在 OData 中提供 DateTime 值

    c# - NotifyIcon ContextMenu 和太多点击事件

    c# - 计算通过 WCF 的包(数据契约(Contract))的大小?

    wcf - 是否可以使用实体作为数据契约?

    c# - 如果用户离开网站,SignalR 是否会调用 OnDisconnected

    c# - .NET 紧凑型框架 - "offline webservices"支持

    c# - WCF服务添加:# to JSON object

    c# - 遍历 DataContract 类

    c# - 在 C# 中调用扩展方法的不同方式

    c# - 为什么使用wcf托管在另一个线程上时,为什么总是总是更改线程ID?