我有一個[serializable]類,我使用二進制格式化程序進行序列化,通過網絡(TCPListener,TCPClient)發送,然後運行反序列化。每當我進行反序列化時,我都會遇到一個超出內存的異常。有誰知道爲什麼會發生這種情況?BinaryFormatter外存異常反序列化
(我送的類是非常小的)
感謝,
PM
編輯:我的班級我的其他類之一的鏈表,以及一些方法。我做了兩個Serializable。
我有一個[serializable]類,我使用二進制格式化程序進行序列化,通過網絡(TCPListener,TCPClient)發送,然後運行反序列化。每當我進行反序列化時,我都會遇到一個超出內存的異常。有誰知道爲什麼會發生這種情況?BinaryFormatter外存異常反序列化
(我送的類是非常小的)
感謝,
PM
編輯:我的班級我的其他類之一的鏈表,以及一些方法。我做了兩個Serializable。
該類是否有一個序列化構造函數(需要SerializationInfo
和StreamingContext
params)?如果是這樣,那麼序列化構造函數中可能會有一個錯誤?
(請提供有關類別的詳細信息。)
不,我只是在類聲明上面放置了一個[Serializable]塊,該類實際上並沒有實現ISerializable。 – user472875 2010-11-11 01:46:58
如果你想確定網絡上的內容以及什麼不是,請嘗試在每個字段附近使用[DataMemeber]屬性,從單個小字段開始。並添加更多的[DataMember]屬性,直到你遇到錯誤。 – 2010-11-11 05:11:02
有時串行和/或解串器具有循環引用的麻煩。
無論如何,我推薦自定義序列化器&反序列化器。能夠只查看代碼並知道存儲格式是什麼樣子真的很有用。
國際海事組織,我發現它非常有效的循環引用... – leppie 2010-11-11 06:46:02
類型結構可能嗎? – leppie 2010-11-11 06:46:30