什么是ISerializable.GetObjectData的反序列化等价物?

时间:2013-05-03 16:17:06

标签: c# serialization

我正在编写自定义序列化程序,我刚刚完成了处理ISerializable.GetObjectData的部分。但是当我去反序列化信息并将其重新应用到图表时,我没有看到 Set -ObjectData的等效函数。

如何将SerializationInfo数据重新应用到图表中?

1 个答案:

答案 0 :(得分:4)

实现ISerializable的MSDN Library文档中描述的特殊反序列化构造函数:

  

ISerializable接口意味着具有签名构造函数的构造函数(SerializationInfo信息,StreamingContext上下文)。在反序列化时,只有在格式化程序对序列化信息中的数据进行反序列化后才会调用当前构造函数。通常,如果类没有被密封,则应该保护这个构造函数。

例如:

protected Widget(SerializationInfo info, StreamingContext context)
{
    // Perform your deserialization here...
    this.SerialNumber = (string)info.GetValue("SerialNumber", typeof(string));
}