我有一個MemoryStream,當我從網絡中接收數據時,我寫入了它。由於數據可以被分解,所以流可能具有存儲在流中的部分消息或多個消息。反序列化時,我將指針放回到流的開頭,並嘗試反序列化我的一個類。我有反序列化包裝在一個try catch塊中,但我到達反序列化行,應用程序只是退出(沒有例外,沒有更多的線在函數中運行等)。反序列化具有多個對象的.NET流
我有多個問題:
- 什麼是從網絡,可能會或可能不會完成接收XML數據流的最佳方式,如果是的話可能會或可能不會有一個以上的消息?
- 解串器是否需要了解編碼以解碼MemoryStream中的XML?
- 反序列化是否在反序列化對象之後放置流指針?
- 你可以反序列化單個流內的多個對象嗎?
請發表您使用序列化的代碼行和反序列化流。通常,網絡層將負責確保收到完整的消息,而不是反序列化代碼。你問題的這個方面讓我感到困惑。 –
您確實需要弄清楚爲什麼反序列化的調用會在沒有異常的情況下退出。另外,如果解串器發生異常,它很可能不能重新同步和重新啓動。 –