【发布时间】:2010-04-22 11:24:41
【问题描述】:
我正在尝试使用 System.IO.Packaging.Package 和 PackagePart 将大量二进制数据序列化为自定义文件格式。我正在尝试使用 BinaryFormatter 将一组详细的医学成像数据集输出到文件/包中的不同部分。
我可以使用 BinaryFormatter 将我的所有数据直接输出到 FileStream(根本不使用 System.IO.Packaging),并且我的示例数据在大约 12 秒内输出大约 140meg 的数据。相当快而且还不错的解决方案,但我更喜欢更灵活的格式,支持压缩和以灵活格式存储额外数据的能力。
通过 _packagePart.GetStream() 获取流并尝试通过 BinaryFormatter 将数据序列化到该流中,我的数据序列化需要大约 5 到 10 分钟(这是在关闭压缩的情况下)。
System.IO.Packaging.Package 类有点像我没有丰富经验的黑盒子。知道为什么将数据流式传输到这种格式与文件的直接二进制格式化程序在性能上会有如此大的不同吗?我知道我的对象可以相对快速地序列化为二进制格式。为什么要写这么久?
【问题讨论】:
-
或许贴一些示例代码
标签: c# serialization