2009-10-27 83 views
2

當我使用我的應用程序時,它試圖序列化一個300 KB的字典。由於沒有磁盤空間,它只能寫入292 KB。有沒有一種方法可以成功反序列化那裏的任何內容?如何反序列化或恢復未完成序列化的二進制序列化字典?

我使用BinaryFormatter,如果我失去了一些比丟失整本字典更好的元素。

當我反序列化,我得到這個異常:

e.Message "The input stream is not a valid binary format. The starting contents (in bytes) are: 20-01-20-20-20-FF-FF-FF-FF-01-20-20-20-20-20-20-20 ..." 

回答

2

採摘除了二進制流確實需要很多關於實施知識。 BinaryFormatter是專有的,所以...除非這些數據真的很有價值,否則考慮它可能會更便宜。你可以做很多諷刺,但這並不容易,開發時間也不便宜。

我不是說不能被做。 FWIW,我可以考慮爲其他一些序列化程序執行此操作的方法 - 不是BinaryFormatter

+0

謝謝馬克。你是什​​麼意思通過scrobbling?你的意思是喜歡使用正則表達式?我在ascii格式裏面看到了我需要的信息,我可以使用它提取它們,然後使用正則表達式將它添加到新文件中,但不確定它是否可靠? 當你說它是專有的,你的意思是代碼明智嗎?你可以看到他們是如何使用反射器做的,對吧? 哪些序列化器可以使這成爲可能? XML? (雖然他們不支持字典) – 2009-10-27 13:27:23

+1

「scrobbling」我的意思是凌亂的工作。是的,你可以使用反射器;我不確定這會讓事情變得更容易。大多數文本格式很容易截斷;同樣也有一些開放格式的二進制文件。 – 2009-10-27 13:43:19

相關問題