Control de versiones
.NET Framework proporciona compatibilidad para el control de versiones y la ejecución compatible; todas las clases funcionarán en distintas versiones si las interfaces de las clases permanecen iguales. Como la serialización trata con variables miembro y no con interfaces, sea prudente al agregar o quitar variables miembro de las clases que va a serializar para su uso en distintas versiones. Esto se cumple especialmente en el caso de las clases que no implementan la interfaz ISerializable. Cualquier cambio de estado de la versión actual, como agregar variables miembro, cambiar el tipo de las variables o cambiar sus nombres, hará que no se puedan deserializar correctamente los objetos existentes del mismo tipo si se serializaron con una versión anterior.
Si es necesario cambiar el estado de un objeto entre versiones, los autores de la clase tienen dos opciones:
- Implementar ISerializable. Esto permite tener un control preciso del proceso de serialización y deserialización, y permite agregar un estado posterior e interpretarlo correctamente durante la deserialización.
- Marcar las variables miembro que no son esenciales con el atributo NonSerialized. Esta opción sólo se debe utilizar si espera realizar pequeños cambios entre diferentes versiones de una clase. Por ejemplo, cuando se ha agregado una nueva variable a una versión posterior de una clase, la variable se puede marcar como NonSerialized para asegurarse de que la clase siga siendo compatible con las versiones anteriores.
Vea también
Serialización binaria | Acceso a objetos de otros dominios de aplicación mediante .NET Remoting | Serialización XML