版本容错序列化回调
数据协定编程模型充分支持 BinaryFormatter 和 SoapFormatter 类所支持的版本容错序列化回调方法。
版本容错属性
共有四个回调属性。每个属性都可应用于序列化/反序列化引擎在不同时间调用的方法。下表说明使用每个属性的时间。
属性 | 调用相应方法时。 |
---|---|
在序列化类型之前调用。 |
|
在序列化类型之后调用。 |
|
在反序列化类型之前调用。 |
|
在反序列化类型之后调用。 |
该方法必须接受 StreamingContext 参数。
这些方法主要计划用于版本控制或初始化。反序列化期间,不调用任何构造函数。因此,如果传入流中缺少数据成员的数据,则这些成员可能不会正确初始化(为既定的默认值),例如,如果数据来自缺少某些数据成员的类型的上一版本。若要更正此错误,请使用加有 OnDeserializingAttribute 标记的回调方法,如下面的示例中所示。
只能使用上述每个回调属性对每个类型标记一个方法。
示例
另请参见
参考
OnSerializingAttribute
OnSerializedAttribute
OnDeserializingAttribute
OnDeserializedAttribute
StreamingContext