FtpWebRequest类是否可以序列化?

时间:2011-08-22 08:42:32

标签: c# serialization

我想序列化一个FtpWebRequest类的实例。可能吗?当我尝试时,它给了我错误,该类没有标记为可序列化,这意味着我无法序列化对象,但在msdn文档中,他们提到了ISerializable.GetObjectData的显式实现

http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest_members(v=vs.90).aspx

这是什么意思?我可以序列化吗?困惑请帮忙

3 个答案:

答案 0 :(得分:1)

不是,因此解释了这个方法:

基础结构。在后代类中重写时,使用序列化WebRequest所需的数据填充SerializationInfo实例。 (继承自WebRequest。)

这意味着它是一种基础结构方法(内部使用.NET代码)。 WebRequest类是可序列化的,它需要直接从此类序列化数据,或者可能是FtpWebRequest的基类。

链接后甚至说:

此API支持.NET Framework基础结构,不能直接在您的代码中使用。

答案 1 :(得分:1)

不,不是。虽然它继承了ISerializable,但缺少必要的序列化构造函数。但也许更好的问题是:

  

在什么情况下可以有意义来序列化这个?

我想不到一个。 请求操作类;最好是序列化数据(系统的状态) - 而不是使它工作的旋转齿轮。出于同样的原因,我不会尝试序列化连接,文件流等

找出使系统恢复到必要状态所需的数据;序列化数据。

答案 2 :(得分:0)

根据我的理解,FtpWebrequest类允许您与服务器进行交互,但GetObjectData方法要求被检索的对象必须是可序列化的,原因很明显。看一下这个问题,看看它是如何实现的:

Stackoverflow question