版本容错序列化回调

数据协定编程模型充分支持 BinaryFormatterSoapFormatter 类所支持的版本容错序列化回调方法。

版本容错属性

共有四个回调属性。每个属性都可应用于序列化/反序列化引擎在不同时间调用的方法。下表说明使用每个属性的时间。

属性 调用相应方法时。

OnSerializingAttribute

在序列化类型之前调用。

OnSerializedAttribute

在序列化类型之后调用。

OnDeserializingAttribute

在反序列化类型之前调用。

OnDeserializedAttribute

在反序列化类型之后调用。

该方法必须接受 StreamingContext 参数。

这些方法主要计划用于版本控制或初始化。反序列化期间,不调用任何构造函数。因此,如果传入流中缺少数据成员的数据,则这些成员可能不会正确初始化(为既定的默认值),例如,如果数据来自缺少某些数据成员的类型的上一版本。若要更正此错误,请使用加有 OnDeserializingAttribute 标记的回调方法,如下面的示例中所示。

只能使用上述每个回调属性对每个类型标记一个方法。

示例

另请参见

参考

OnSerializingAttribute
OnSerializedAttribute
OnDeserializingAttribute
OnDeserializedAttribute
StreamingContext

其他资源

Version-Tolerant Serialization