当前位置:  开发笔记 > 编程语言 > 正文

我可以序列化数据表或数据集以通过C#中的Web服务进行传输吗?

如何解决《我可以序列化数据表或数据集以通过C#中的Web服务进行传输吗?》经验,为你挑选了4个好方法。

我正在使用Web服务来查询表中的数据.然后我必须将它发送给想要它作为DataTable的用户.我可以序列化数据吗?或者我应该将其作为A DataSet发送.我是Web Services的新手,所以我不确定最好的方法.



1> freggel..:

您可以将数据作为xml字符串从数据集中发送 DataSet.GetXml()

并且用户可以使用反序列化 DataSet.ReadXml()

并从数据集中获取数据表 DataSet.Tables

祝好运



2> Marc Gravell..:

如果将它暴露为DataSet/ DataTable,它将自己进行自己的序列化(通过IXmlSerializable,IIRC).需要注意的是DataSet/ DataTable不作出良好的数据类型的Web服务,如果你希望服务移植到其他patforms(即Java客户端等).但是如果你想...... 你可以简单地公开它; .NET将处理翻译.


确保设置TableName,否则序列化时会出错.

3> Chris Ballar..:

请参阅Richard Blewett的这篇文章,了解您可能不希望这样做的原因.

编辑: 总结以上内容:

使用DataSet不可互操作.它使用的注释只有在链接的每一端使用Microsoft堆栈时才有意义.

DataSet 通过网络发送数据是一个非常低效的类 - 它还包含更改跟踪数据和元数据.

它引入了紧密耦合 - 客户端甚至可能不需要在服务端进行的更改也必须反映在客户端.


严重的是,因为4年前发布的外部网站链接停止工作了吗?找到重新定位的博客并更新链接

4> Joel Coehoor..:

当然.DataTable和DataSet都是可序列化的,它们也可以使用ReadXml()和WriteXml()函数.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有