次の方法で共有


バージョン トレラントなシリアル化コールバック

データ コントラクトのプログラミング モデルでは、BinaryFormatter クラスと SoapFormatter クラスがサポートする、複数のバージョンに対応するシリアル化コールバック メソッドが完全にサポートされます。

複数のバージョンに対応する属性

4 つのコールバック属性があります。各属性は、さまざまなタイミングでシリアル化エンジンまたは逆シリアル化エンジンが呼び出すメソッドに適用できます。次の表では、各属性を使用するタイミングについて説明します。

属性 対応するメソッドが呼び出されるタイミング

OnSerializingAttribute

型をシリアル化する前に呼び出されます。

OnSerializedAttribute

型をシリアル化した後に呼び出されます。

OnDeserializingAttribute

型を逆シリアル化する前に呼び出されます。

OnDeserializedAttribute

型を逆シリアル化した後に呼び出されます。

メソッドは、StreamingContext パラメータを受け入れる必要があります。

これらのメソッドは、主にバージョン管理と初期化に使用するためのものです。逆シリアル化時にコンストラクタは呼び出されません。このため、データ メンバのデータが受信ストリームにない場合、たとえば、データの送信元が、一部のデータ メンバが不足している前のバージョンの型である場合、そのデータ メンバを目的の既定値に適切に初期化できないことがあります。これを修正するには、次の例で示すように、OnDeserializingAttribute でマークされたコールバック メソッドを使用します。

上記の各コールバック属性でマークできるのは、型ごとに 1 つのメソッドだけです。

関連項目

リファレンス

OnSerializingAttribute
OnSerializedAttribute
OnDeserializingAttribute
OnDeserializedAttribute
StreamingContext

その他の技術情報

Version-Tolerant Serialization