Как сериализовать в файл с Microsoft Bond

В разделе " Потоки ввода и вывода" документации Microsoft Bond приведен пример кода для десериализации из файла:

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);
}

Есть идеи?

1 ответ

Решение

Похоже, что OutputStream не был сброшен в FileStream. Попробуйте добавить явный вызов 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,

Другие вопросы по тегам