Как сериализовать в файл с 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
,