2013-11-20 32 views
0

我想(定製)將字節數組反序列化爲c#中的類對象,並且遇到了這篇文章http://msdn.microsoft.com/en-us/library/ty01x675.aspx。現在,我如何使用SerializationInfo作爲參數調用特殊構造函數MyObject?在類的自定義(德)序列化中調用特殊構造函數

MyObject(SerializationInfo info, StreamingContext context) 

我有一個字節數組,我需要複製到類對象。

+0

要做到這一點,你會使用'BinaryFormatter',但我不認爲它會工作,當你有一個特定格式的字節數組。 – svick

+0

Ya,BinaryFormatter不適合我的字節數組 –

回答

0

您不應該調用該構造函數,BinaryFormatter會這樣做。換句話說,您應該使用與序列化相同的類/框架進行反序列化,因此僅詢問反序列化是沒有意義的。您可以在MSDN文檔中看到自定義方式也有兩個方面(GetObjectData方法是其他方法)。

+0

GetObjectData是用於將對象內容序列化爲字節數組的權利?我想要反過來,即反序列化,這就是爲什麼我認爲特殊的構造函數是交易 –

+0

不完全是一個字節數組,更像一個流,這可能意味着幾件事情,但最後通常是一個字節流。但是每個序列化器都有一個非常特定的格式,其數據通常只能由同一個引擎反序列化。您提到的自定義序列化不完全是自定義的,它仍然主要與BinaryFormatter綁定,並且您只能自定義_what_它序列化,而不是_how_。然而,你得到了你的字節數組,你需要使用相同的引擎來反序列化它。如果它不是BinaryFormatter加上GetObjectData方法,那麼它也不會反序列化它。 – fejesjoco

相關問題