我一直在使用Xml序列化程序来序列化一个类并将其保存到一个对象中,我稍后会将其发送到服务器。由于我发送给服务器的消息数量,我决定将序列化方法更改为会导致尺寸变小的内容。
我找到了protobuf-net,但我确实找到了有关如何将类序列化为文件流的文档。在我看来,如果每秒发送超过100个包,保存到文件然后将其发送到服务器将不会非常有效。 所以我的问题是,如何序列化一个类并将其保存到一个对象中呢?
答案 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'