如何使用 Microsoft Bond 序列化为文件

How to serialize to a file with Microsoft Bond

Microsoft Bond 文档的输入和输出流 section 提供了从文件反序列化的示例代码:

using (var stream = new FileStream("example.bin", FileMode.Open))
{
    var input = new InputStream(stream);
    var reader = new CompactBinaryReader<InputStream>(input);
    var example = Deserialize<Example>.From(reader);
}

我尝试反向序列化到文件,但没有任何内容写入文件。

using (var stream = new FileStream("example.bin", FileMode.Create))
{
    var output = new OutputStream(stream);
    var writer = new CompactBinaryWriter<OutputStream>(output);  
    Serialize.To(writer, example);
}

有什么想法吗?

看起来 OutputStream 还没有被刷新到 FileStream 中。尝试像 stream example 那样添加对 OutputStream.Flush 的显式调用:

using (var stream = new FileStream("example.bin", FileMode.Create))
{
    var output = new OutputStream(stream);
    var writer = new CompactBinaryWriter<OutputStream>(output);  
    Serialize.To(writer, example);
    output.Flush();
}

设计 OutputStream 时我不在场,因此我无法评论导致它未实现 IDisposable 的决策过程。