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

问题描述:

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

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

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

理想情况下,我想自己对某些'DataContract'-s进行序列化,这样我就可以使它变得非常紧凑。有谁知道这是可能的,还是任何解释如何使用WCF自定义序列化的文章?

在此先感谢

+0

当您输入问题时,需要突出显示代码行,SQL或XML,并在编辑器工具栏上使用“代码”按钮(101 010)将代码格式化为代码,语法高亮 – 2010-03-19 18:09:43

WCF支持二进制序列化格式开箱 - 它是默认使用的netTcpBinding。我建议首先尝试将其用于测试 - 只有当这种方法无法正常工作并且压缩程度不够时,并且您可以自信地超越并超越整个WCF团队的范围,然后将您自己的自定义二进制序列化格式。

检查出一些优秀的资源:

随着WCF绑定的组合性,你可以很容易地也建立一个如二进制HTTP绑定。

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

+2

关于短语“智取和超越整个WCF团队“:这是无关紧要的。自定义的二进制序列化和编码总是可以胜过通用的序列化,只需利用关于序列化对象的知识即可。没有必要“智取”任何人。 – 2013-01-25 20:48:50