2
我們使用二進制格式化程序來序列化對象圖,其中相同的對象可能被多個路徑引用。但是在序列化過程中,特定對象的GetObjectData被多次調用。當使用更簡單的對象使用測試樣本進行嘗試時,它將獨立於對象圖中出現的次數被調用一次。是否有任何理由爲什麼同一個對象會被多次訪問,並且在序列化過程中.GetObject數據可能會在Serializable對象上調用?發生這種情況時,反序列化似乎會因FixUp錯誤而失敗。.NET二進制格式化程序會多次調用GetObjectData嗎?
你能告訴我們你的代碼嗎?你是否只序列化一個對象圖(即只調用一次'Serialize()')?什麼是「FixUp錯誤」? – svick
道歉,代碼庫非常大,可以共享。它不是一個正在被序列化的對象,而是一個散列表,其中有其他對象,並且所討論的對象類型可以從多個路徑引用。反序列化期間引發的異常是「System.Runtime.Serialization.SerializationException:具有ID 91的對象在修正中引用但不存在。」 – sraj
我不是要求你分享你的整個代碼庫。但是,您能分享一段我們可以用來複制問題的代碼嗎? – svick