WCF服务大Linq响应

本文关键字:响应 Linq 服务 WCF | 更新日期: 2023-09-27 18:11:00

我使用WCF返回从SQL Server返回的复杂对象列表与Linq。

我想返回一个对象列表,其中包含大约16个属性和2个对其他复杂类型的引用(每个类型约有8个属性)。

我在fiddler中看到,返回的每个对象(当序列化为XML时)大约是5KB,当我尝试返回一个完整的列表(900项)时,它大约是3MB!!

这正常吗?是否有其他方法将数据序列化为轻量级格式?

提前感谢!!

WCF服务大Linq响应

看看netttcpbinding,如果这对你来说是可能的,这将大大减少网络流量相比XML序列化

XML非常冗长,而且这个大小并不真正让我感到惊讶(考虑到列表的大小—如果您问我的话,900个项目太多了)。

如果你需要"打包"你的数据,我建议将你的对象序列化为JSON,因为这样可以省去很多冗长的内容。它有一个内置的JSON序列化机制,因此您应该能够快速入门。我唯一有问题的是DateTime字段,它有时会与内置的JSON序列化器出错,但有解决方案。

然而,这也意味着两端都必须做一些工作。在服务器端,您需要将您的实体转换为某种传输实体,或者dto,如果您愿意的话。在客户端,您不能立即使用这些数据,但需要首先对数据进行反序列化,并从那里重新构建数据模型。

你想在你发送的对象中打包一个"DTO信息",这样你的客户端就知道它正在接收的数据包的期望是什么。例如,哪个类型已经序列化,等等。