protobuf-net - 序列化类并将其保存到对象

时间:2013-11-26 10:23:51

标签: c# object serialization protobuf-net

我一直在使用Xml序列化程序来序列化一个类并将其保存到一个对象中,我稍后会将其发送到服务器。由于我发送给服务器的消息数量,我决定将序列化方法更改为会导致尺寸变小的内容。

我找到了protobuf-net,但我确实找到了有关如何将类序列化为文件流的文档。在我看来,如果每秒发送超过100个包,保存到文件然后将其发送到服务器将不会非常有效。 所以我的问题是,如何序列化一个类并将其保存到一个对象中呢?

1 个答案:

答案 0 :(得分: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'