当我尝试序列化HttpWebRequest时,我收到以下错误
输入'System.Net.KnownHttpVerb' Assembly'System,Version = 2.0.0.0, 文化=中性, PublicKeyToken = b77a5c561934e089'是 没有标记为可序列化。
使用.Net Framework 2.0
这是我班级拥有的其中一个属性。这是序列化它的要求。
HttpWebRequest标记为Serializable,因此它应该序列化
答案 0 :(得分:3)
好吧,如果其中一个包含的对象被标记为不可序列化,我相信你使用默认的序列化程序“运气不好”。
如果可能,我建议改为使用参数来实例化您的Web请求并将其序列化。 编写一个自定义序列化器/反序列化器来重建不合作的对象。
编辑:有一篇相当不错的文章here。
EDIT2:事实上,经过一番谷歌搜索后,看起来这是你唯一的选择,因为HttpWebRequest上的Serializable属性已被标记为.net 2.0的过时。有关详细信息,请参阅here(搜索HttpWebRequest)。
答案 1 :(得分:0)
System.Net.HttpWebRequest序列化在.NET 2.0中被标记为obselete。
这里的官方文件:
从应用程序的角度来看,这是最好的结果。 HttpWebRequest实例的主要部分是IO状态,通常不能直接重新水化。
正如@ Andrew-Rollings建议实现自定义序列化来存储/恢复请求参数,然后从头开始重新创建HttpWebRequest实例。