(De)将多个项目序列化为文件

时间:2012-07-13 16:12:23

标签: c# serialization persistence

我想从/向文件序列化/反序列化多个对象。语法应类似于:

obj.Append(byteArray);
obj.Append(byteArray);
obj.Append(byteArray);
IEnumerable<byte[]> obj.Extract();

虽然这很容易实现(例如,在内部编写一个使用文件流和protobuf-net的类),但我想知道是否有更优雅的方法。是否有任何类(来自第三方库)使用序列化程序写入文件流?

编辑:我需要将其作为捕获通过网络发送的视频数据的文件流。因此,文件流必须打开一段专用时间。我之前的解决方案是将每个视频帧保存到一个新文件,但它不可扩展(特别是对于硬盘驱动器和增加视频合作伙伴)。

1 个答案:

答案 0 :(得分:0)

怎么样:

using(var stream = File.Open(filename, FileMode.Create))
{
      var formatter = new BinaryFormatter();
      formatter.Serialize(stream, firstObjectToSerialize);
      formatter.Serialize(stream, secondObjectToSerialize);
}