2008-12-08 61 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实例。

相关问题