2

我希望能够通过 Web 查询我的数据库,并且我希望使用 WCF 服务来处理请求和结果。问题在于,由于这些查询可能返回的数据量很大,我担心这些结果将如何通过网络进行序列化。例如,我可以想象 XML 序列化看起来像:

<Results>
    <Person Name="Adam" DateOfBirth="01/02/1985" />
    <Person Name="Bob" DateOfBirth="04/07/1986" />
</Results>

以及包含类型名称和其他(不必要的)元数据的二进制序列化。甚至可能是集合中每个元素的类型名称?o_o

理想情况下,我想自己执行某些“DataContract”的序列化,这样我就可以使它变得超级紧凑。有谁知道这是否可能,或者任何解释如何使用 WCF 进行自定义序列化的文章?

提前致谢

4

1 回答 1

4

WCF 支持开箱即用的二进制序列化格式 - 默认情况下在netTcpBinding. 我建议首先尝试将其用于您的测试 - 仅当它不起作用且压缩不足,并且您有信心可以超越整个 WCF 团队并对其进行编程时,去推出您自己的自定义二进制序列化格式。

查看一些优秀的资源:

借助 WCF 绑定的可组合性,您还可以轻松地创建例如二进制 HTTP 绑定。

这里的主要问题是:如果你做这样的事情,通信通道的两端必须就如何完成事情达成一致,例如,你不能指望一个简单的浏览器能够连接并理解你的自定义二进制编码——你需要能够控制客户端和服务器端的连线。

于 2010-03-19T18:14:51.800 回答