WCF - (自定义)二进制序列化

时间:2010-03-19 17:15:19

标签: wcf networking serialization binary datacontract

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

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

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

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

提前致谢

1 个答案:

答案 0 :(得分:4)

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

查看一些优秀的资源:

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

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