2010-11-11 105 views
1

我有一個[serializable]類,我使用二進制格式化程序進行序列化,通過網絡(TCPListener,TCPClient)發送,然後運行反序列化。每當我進行反序列化時,我都會遇到一個超出內存的異常。有誰知道爲什麼會發生這種情況?BinaryFormatter外存異常反序列化

(我送的類是非常小的)

感謝,

PM

編輯:我的班級我的其他類之一的鏈表,以及一些方法。我做了兩個Serializable。

+0

類型結構可能嗎? – leppie 2010-11-11 06:46:30

回答

0

該類是否有一個序列化構造函數(需要SerializationInfoStreamingContext params)?如果是這樣,那麼序列化構造函數中可能會有一個錯誤?

(請提供有關類別的詳細信息。)

+0

不,我只是在類聲明上面放置了一個[Serializable]塊,該類實際上並沒有實現ISerializable。 – user472875 2010-11-11 01:46:58

+1

如果你想確定網絡上的內容以及什麼不是,請嘗試在每個字段附近使用[DataMemeber]屬性,從單個小字段開始。並添加更多的[DataMember]屬性,直到你遇到錯誤。 – 2010-11-11 05:11:02

0

有時串行和/或解串器具有循環引用的麻煩。

無論如何,我推薦自定義序列化器&反序列化器。能夠只查看代碼並知道存儲格式是什麼樣子真的很有用。

+0

國際海事組織,我發現它非常有效的循環引用... – leppie 2010-11-11 06:46:02