我想知道在使用WCF与手动完成二进制序列化时是否存在任何性能开销问题。我正在构建一个n层站点,并希望跨层实现异步行为。我计划以二进制形式传递数据以减少带宽。 WCF似乎是构建自己的工具的一个很好的捷径,但我想知道在使用WCF与System.IO命名空间和构建自己的轻量级库之间做出选择时是否有任何要注意的地方。 / p>
答案 0 :(得分:2)
WCF有一个二进制格式化程序,虽然它不完全是二进制格式;它生成SOAP消息,其内容使用.NET二进制格式XML格式化,这是一种高度压缩的XML形式。 (在this samples page上可以看到这样的例子。)
或者,您可以实现自己的custom message formatter,只要格式化程序在客户端和服务器端都可用,就可以根据需要进行格式化。 (我认为你仍然会从WCF获得一些开销但不多。)
我的个人意见,定义自定义二进制格式可能无法节省大量开销,并编写所有序列化/反序列化代码以手动实现它,将无法弥补时间和精力您将花费在尝试实现和调试这种机制上。