作者:不及格的程序员-八神
在WCF中返回DataSet是没有问题的,但是如果想仅返回DataSet中的一个表的话,就会返回一个空表.除非你手动建立一个DataTable对象并且手动添加数据返回它,而不是通过建立DataSet生成的.
理由是,wcf客户端建立的DataTable没有名称空间,而服务器端的DataSet是有默认名称空间的,所以名称空间不一致,导致了客户端DataTable不能接收服务器端的消息.
解决方法是复制一份新的DataTable(copy方法.),或是将服务器端的名称空间属性置空即可.
这是一个设计使然的bug,在.net4.0之前的版本都会存在.
有一些书不建议使用DataTable,但是如果都是.net中,而且我们又使用了tcp压缩传输,那么我就当这些书在放屁.

