Вы звоните stream.Close()
, что в точности совпадает с вызовом Dispose()
в потоке.
Просто удалите эту строку кода, и все будет в порядке.По сути, вам нужно оставить MemoryStream
открытым, когда он вернется.
На другой ноте, в зависимости от того, что вы собираетесь делать, вы также можете сбросить позицию потока.Я подозреваю, что вы захотите:
Stream stream = new MemoryStream();
BinaryFormatter bFormatter = new BinaryFormatter();
bFormatter.Serialize(stream, objectToSerialize);
stream.Position = 0;
return stream;
Это работает так же, как ваш код, но не Dispose()
поток (так как он больше не вызывает stream.Close()
), а также сбрасывает его в началоположение, которое часто требуется, если вы хотите прочитать объект / данные обратно.