HttpWebRequest不会序列化

时间:2008-12-08 22:58:44

标签: .net httpwebrequest serialization

当我尝试序列化HttpWebRequest时,我收到以下错误

  

输入'System.Net.KnownHttpVerb'   Assembly'System,Version = 2.0.0.0,   文化=中性,   PublicKeyToken = b77a5c561934e089'是   没有标记为可序列化。

使用.Net Framework 2.0

这是我班级拥有的其中一个属性。这是序列化它的要求。

HttpWebRequest标记为Serializable,因此它应该序列化

2 个答案:

答案 0 :(得分:3)

好吧,如果其中一个包含的对象被标记为不可序列化,我相信你使用默认的序列化程序“运气不好”。

如果可能,我建议改为使用参数来实例化您的Web请求并将其序列化。 编写一个自定义序列化器/反序列化器来重建不合作的对象。

编辑:有一篇相当不错的文章here

EDIT2:事实上,经过一番谷歌搜索后,看起来这是你唯一的选择,因为HttpWebRequest上的Serializable属性已被标记为.net 2.0的过时。有关详细信息,请参阅here(搜索HttpWebRequest)。

答案 1 :(得分:0)

System.Net.HttpWebRequest序列化在.NET 2.0中被标记为obselete。

这里的官方文件:

  

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

从应用程序的角度来看,这是最好的结果。 HttpWebRequest实例的主要部分是IO状态,通常不能直接重新水化。

正如@ Andrew-Rollings建议实现自定义序列化来存储/恢复请求参数,然后从头开始重新创建HttpWebRequest实例。