c# - C# 中从 MemoryStream 反序列化抛出 OutOfMemory 异常

标签 c# winforms serialization c#-3.0

这是一个 C# 3.0 Winform 问题。

我想克隆一个大的(实际上不是很大)复杂的对象。为了惰性地执行此操作,我将其序列化为 MemoryStream 并使用 BinaryFormatter.UnsafeDeserialize(MemoryStream, null) 方法来获取克隆的对象。在 UnsafeDeserialize() 方法内部,总是会抛出 OutOfMemory 异常。内存要足够。

我读到过一些有关此问题的 .net bug,但不确定这里是否是这种情况。

有人知道为什么会发生这种情况吗?有什么解决方法吗?谢谢。

最佳答案

也许是一个愚蠢的问题,但您是否记得在反序列化之前将 MemoryStream 倒回到流的开头?

分享您的一些代码也可能会有所帮助。

关于c# - C# 中从 MemoryStream 反序列化抛出 OutOfMemory 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1136061/

相关文章:

C# - 返回接口(interface)的方法

c# - 使用 MeshGeometry3D 进行碰撞检测

c# - System.InvalidCastException C#

java - 对象输入流 : is this correct way to unblock

spring-boot - spring-data-redis,空列表属性值变为空

database - 如何将 Perl 数据序列化和反序列化到数据库或从数据库反序列化?

c# - jquery ajax post 成功后 RedirectToAction 不工作?

c# - 将数据从 XML 导入到 SQL Server 表

c# - 为什么 WinForm Form.FormClosed 事件不从窗体持有者触发?

c# - Winforms 中 Console.WriteLine() 的目的是什么