2

尝试序列化 HttpWebRequest 时出现以下错误

在程序集 'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 中键入 'System.Net.KnownHttpVerb' 未标记为可序列化。

使用 .Net 框架 2.0

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

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

4

2 回答 2

3

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

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

编辑:这里有一篇相当不错的文章。

EDIT2:事实上,经过一番谷歌搜索,这似乎是您唯一的选择,因为 HttpWebRequest 上的 Serializable 属性在 .net 2.0 中已被标记为过时。有关详细信息,请参见此处(搜索 HttpWebRequest)。

于 2008-12-08T23:00:57.187 回答
0

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

官方文档在这里:

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

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

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

于 2008-12-08T23:32:31.320 回答