2008-12-08 43 views
2

我收到以下錯誤,當我嘗試序列中 大會「系統的HttpWebRequest的的HttpWebRequest不會序列化

類型「System.Net.KnownHttpVerb」,版本= 2.0.0.0, 文化=中性, PublicKeyToken = b77a5c561934e089'是 未標記爲可序列化。

使用.NET Framework 2.0

這是我的類持有的屬性之一。這是序列化它的要求。

HttpWebRequest的被標記爲Serializable所以它應該序列化

回答

3

好吧,如果包含的對象之一被標記爲不可序列化,我相信你「運氣不好」使用默認的序列。

如果可能的話,我會建議改爲使用參數來實例化您的Web請求並序列化這些參數。 編寫一個自定義串行器/解串器來重構不合作的對象。

編輯:這裏有一篇相當不錯的文章here

EDIT2:其實一點谷歌搜索後,看來這是唯一的選擇,因爲在HttpWebRequest的Serializable屬性已被標記爲已過時的.NET 2.0。有關詳細信息,請參見here(搜索HttpWebRequest)。

+0

HttpWebRequest被標記爲可序列化,所以它應該序列化 – 2008-12-08 23:13:18

0

System.Net.HttpWebRequest序列化在.NET 2.0中被標記爲obselete。

正式文件位置:

http://msdn.microsoft.com/en-us/library/aa497288.aspx

從應用角度來看,這是最好的結局。 HttpWebRequest實例的主要大部分是IO狀態,它通常不是直接可複用的。

由於@ Andrew-Rollings建議改爲實現自定義序列化以存儲/恢復您的請求參數,然後從頭開始重新創建HttpWebRequest實例。

相關問題