将多个流序列化为单个流

时间:2018-05-03 08:15:49

标签: c# performance serialization

我有一个场景,我需要备份数千个相当小的(1-3KB)文件(在Azure blob存储中,但这不是重点)我将其列为这些文件的列表模型(我不拥有的源代码 - 它的Azure SDK):

class Model {
  public string Name {get;set;}
  public Stream Data {get;}
  //bunch of other things I'd like to ignore
}

我最好的尝试(从性能的角度来看)现在使用Json.NET中的JsonTextWriter将它们全部合并到一个文件中,但显然我不需要文本格式,这会引入很多开销。我想知道是否有任何(二进制?)序列化器可用,它不需要我用一些特定属性来装饰现有模型,并且还有一个很好的API,包括像

这样的
var writer = new MagicWriterThatImLookingFor();
foreach(var model in models){
  writer.WriteString(model.Name);
  writer.WriteByteArray(model.Data.ToArray());
}

使用相应的反序列化?

0 个答案:

没有答案