2013-01-16 19 views
2

我们尝试了各种各样的东西,但Protobuf似乎是最轻量和最快的。 现在我们的问题是,我们使用Silverlight作为客户端,这并不容易换出WCF的默认串行器。在WCF和Silverlight中使用protobuf-net

protobuf-net在这方面有什么改进吗?

或者有什么其他的建议可以加快我们的web服务?

我喜欢WCF在客户端生成的WDSL,所以我想坚持。然而,手动做请求也不错,尽管需要花费大量的时间来更换旧服务。

+1

“发送流或字节[]”是我可以建议的唯一的东西,恐怕。 –

回答

1

我们基本结束了将数据作为Byte[]数组传递并手动处理序列化/反序列化。这样做还有一些额外的工作,但最终它给了我们更好的灵活性(特别是有一些Protobuf并不想要序列化的问题对象)。

+0

WCF使用哪种序列化呢?你是否改变了绑定到其他的东西?目前我们正在使用basicHttpBinding和默认的XMLserializer。 – PeerToPeer

+0

我们使用'basicHttpBinding'使用二进制序列化,然后只使用返回类型的byte []作为服务方法。这允许我们在返回对象之前序列化返回对象,并且在它们以字节数组形式在客户端上时将它们反序列化。我们使用包含您正在使用的类型的共享库,以便双方都可以根据需要序列化和反序列化。 –

+0

不错,我们会试试看看它是否更快!感谢您的解释! – PeerToPeer