【问题标题】:protobuf-net - Serialize class and save it to objectprotobuf-net - 序列化类并将其保存到对象
【发布时间】:2013-11-26 10:23:50
【问题描述】:
我一直在使用 Xml 序列化程序来序列化一个类并将其保存到一个对象中,然后我将其发送到服务器。由于我发送到服务器的消息量很大,我决定将序列化方法更改为会导致大小更小的东西。
我找到了 protobuf-net,但我只找到了有关如何将类序列化为文件流的文档。在我看来,如果您每秒发送超过 100 个包,则保存到文件然后将其发送到服务器不会很有效。
所以我的问题是,如何序列化一个类并将其保存到一个对象中?
【问题讨论】:
标签:
c#
object
serialization
protobuf-net
【解决方案1】:
protobuf-net 可以写入(或读取)任何Stream 实现。 FileStream 只是一个例子。在机器之间进行通信的情况下,这可能是NetworkStream。如果您只想获取内存中的表单,请使用MemoryStream。例如:
byte[] chunk;
using(var ms = new MemoryStream())
{
Serializer.Serialize(ms, obj);
chunk = ms.ToArray();
}
// now do something interesting with 'chunk'