跨WCF Web服务请求序列化通用XML数据

Gor*_*onB 4 xml vb.net wcf dataset

我有一个Web应用程序,它向WCF服务发送请求.WCF服务获取LINQ结果集(anon.ilist)并将其作为回复发送回Web应用程序.为了让它快速运行,在WCF应用程序中,我正在使用copytodatatable并将其发送到我在DataSet中的Web应用程序.

我的Web应用程序然后获取DataSet并将其写入xml,执行一些xslt并在屏幕上显示结果数据.完善.......好吧,不是真的.

我仍然(相对)是WCF的新手.我知道发送DataTables/DataSet有点麻烦.Web应用程序需要xml格式的数据(对于xslt操作),所以我想我会得到WCF Web服务来为我做DataTable - > xml工作,并简单地用一个漂亮的XmlDocument回复到客户端webapp.
但是,无法序列化XmlDocument.

通过wcf将XML数据发送到客户端的最佳方法是什么?

  • 数据表包含很多列,并且会频繁更改,因此我不想创建自己的对象类(具有类似bazillion属性)并发送它(因为这是我以前在大多数时间所做的事情) wcf,它运行良好......但不适合这种情况).

  • 编辑:发送它作为一个字符串工作也....但这肯定不是最好的解决方案?

Tad*_*ghe 5

通过WCF发送数据集的唯一问题是它不可互操作 - 即您将无法使用来自非.NET客户端的数据集.

我曾经在几个大型应用程序中工作,通过WCF发送数据集就好了.只要发送者和接收者都在.NET上运行,你应该没问题.

如果您仍然不想使用数据集,请考虑创建一个DataContract类来保存您的数据以通过网络发送.这是跨WCF传输数据的经典方法.除非你的XML非常复杂(它可能很复杂),否则这可能是一个很好的选择.

如果你还没有它,我强烈建议你拿一份Juval Lowy出色的"编程WCF服务第二版".他有一整章关于在WCF中传输信息.这是WCF圣经.