我希望能够通过Web查询我的数据库,并且我想使用WCF服务来处理请求和结果。问题是由于可能从这些查询中返回的数据量很大,我担心这些结果将如何通过网络进行序列化。例如,我可以想象XML序列化看起来像:
<Results>
<Person Name="Adam" DateOfBirth="01/02/1985" />
<Person Name="Bob" DateOfBirth="04/07/1986" />
</Results>
包含类型名称和其他(不必要的)元数据的二进制序列化。甚至可能是集合中每个元素的类型名称? O_O
理想情况下,我想自己执行某些'DataContract'的序列化,这样我就能让它超级紧凑。有没有人知道这是否可行,或任何解释如何使用WCF进行自定义序列化的文章?
提前致谢
答案 0 :(得分:4)
WCF支持开箱即用的二进制序列化格式 - 默认情况下,它在netTcpBinding
中使用。我建议首先尝试将它用于测试 - 只有当它不起作用并且压缩不够时,并且你确信你可以超越并超出整个WCF团队的程序,去推出你自己的自定义二进制序列化格式。
查看一些优秀的资源:
借助WCF绑定的可组合性,您可以轻松地创建例如二进制HTTP绑定。
这里的主要问题是:如果你做这样的事情,沟通渠道的两端必须就如何完成事情达成一致,例如:您不能指望简单的浏览器能够连接并理解您的自定义二进制编码 - 您需要能够控制线路的客户端和服务器端。