c# - 将多个流序列化为一个流
问题描述
我有一个场景,我需要备份数千个相当小的 (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());
}
与相应的反序列化?
解决方案
推荐阅读
- node.js - 没有密码的 PostgreSQL 用户的环回数据源的 JSON 模式是什么?
- php - Laravel 自定义模型类 - 字段没有默认值
- javascript - 从 Promise 中获取“数据”值
- c++ - 在 C++ 中发布增量与添加 1
- java - 查看 InputStream 是否关闭
- performance - Haskell 中具有 rank-2 多态性的令人费解的性能/输出行为
- python - 类型错误:不支持 Unicode 字符串,请编码为字节:'ÿ'
- java - IntelliJ 无法识别 Maven 导入的依赖项?
- javascript - 必须提供返回 dcs.source 或 dcs.c2stream 中的非空文档列表的 Carrot2
- c# - 从另一个类库中的 ViewModel 关闭窗口