【问题标题】:BinaryFormatter outofmemory exception deserializationBinaryFormatter 内存不足异常反序列化
【发布时间】:2010-11-11 01:35:46
【问题描述】:

我有一个 [serializable] 类,我使用二进制格式化程序对其进行序列化,通过网络发送(TCPListener、TCPClient),然后运行反序列化。每次我进行反序列化时,都会出现内存不足异常。有谁知道为什么会发生这种情况?

(我发的班级很小)

谢谢,

下午

编辑:我的课程是我的其他课程之一和一些方法的链接列表。我都做了 Serializable。

【问题讨论】:

    标签: c# serialization


    【解决方案1】:

    该类是否有序列化构造函数(接受SerializationInfoStreamingContext 参数的构造函数)?如果是这样,序列化构造函数中是否存在错误?

    (请提供有关课程的更多详细信息。)

    【讨论】:

    • 不,我只是在类声明上方放置了一个 [Serializable] 块,该类实际上并未实现 ISerializable。
    • 如果您想确定线路上的内容和不存在的内容,请尝试在每个字段附近使用 [DataMemeber] 属性,从单个小字段开始。并添加更多 [DataMember] 属性,直到您遇到错误。
    【解决方案2】:

    有时序列化器和/或反序列化器会遇到循环引用问题。

    无论如何,我都会推荐自定义序列化器和反序列化器。能够仅查看您的代码并了解存储格式的外观确实很有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      相关资源
      最近更新 更多