Devoluciones de llamadas en la serialización tolerante a versiones

El modelo de programación del contrato de datos admite totalmente los métodos de devolución de llamada de serialización tolerante a versiones que las clases BinaryFormatter y SoapFormatter admiten.

Atributos tolerantes a versiones

Hay cuatro atributos de devolución de llamada. Cada atributo se puede aplicar a un método que el motor de serialización/deserialización denomina en varios momentos. La siguiente tabla explica cuándo utilizar cada atributo.

Atributo Cuando se llama al método correspondiente

OnSerializingAttribute

Llamado antes de serializar el tipo.

OnSerializedAttribute

Llamado después de serializar el tipo.

OnDeserializingAttribute

Llamado antes de deserializar el tipo.

OnDeserializedAttribute

Llamado después de deserializar el tipo.

Los métodos deben aceptar un parámetro StreamingContext.

Estos métodos están pensados principalmente para utilizarlos con controlador de versiones o inicialización. No se llama a ningún constructor durante la deserialización. Por lo tanto, puede que no se puedan inicializar correctamente los miembros de datos (en valores predeterminados intencionales), si los datos de estos miembros faltan en la secuencia de entrada, por ejemplo, si los datos proceden de una versión anterior de un tipo al cual le faltan algunos miembros de datos. Para corregirlo, utilice el método de devolución de llamada marcado con OnDeserializingAttribute, tal y como se muestra en el siguiente ejemplo.

Puede marcar sólo un método por tipo con cada uno de los atributos de devolución de llamada anteriores.

Ejemplo

Consulte también

Referencia

OnSerializingAttribute
OnSerializedAttribute
OnDeserializingAttribute
OnDeserializedAttribute
StreamingContext

Otros recursos

Version-Tolerant Serialization