我想使用对象序列化在Mono服务器和Silverlight客户端之间通过网络进行通信。非常重要的一点是,序列化不仅要节省空间而且要快速,因为服务器将要托管多个实时游戏。
我应该使用什么技术?BinaryFormatter给序列化类(版本,区域性,类名,属性名等)增加了很多开销,而在此应用程序中则不需要。
我该怎么做才能提高空间利用率?
您可以使用协议缓冲区。我将所有的序列化代码从BinaryFormatter压缩后更改为Protocol Buffer,并获得了很好的结果。在时间和空间上效率更高。
Jon Skeet和Marc Gravell有两种.NET实现。
更新 :官方.NET实现可在此处找到。