2011-03-03 20 views

Respuesta

0

Solo puedo responder de forma bastante general.

Para el control de las discrepancias en la versión binaria serialización, por favor lea el siguiente artículo de MSDN:

http://msdn.microsoft.com/en-us/library/ms229752(v=vs.80).aspx

para la serialización XML no tengo un artículo, pero MSDN va a explicar el uso de los atributos XML a control de serialización, éstos también ayudan a hacer frente a problemas de versiones:

http://msdn.microsoft.com/en-us/library/83y7df3e(v=VS.85).aspx

http://msdn.microsoft.com/en-us/library/2baksw0z(v=VS.85).aspx

El OnDeserializedAttribute es también útil para hacer frente de forma manual con control de versiones, como predeterminados nuevos valores aquí que no se establece de la corriente de deserialización:

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.ondeserializedattribute.aspx

1

Si usted quiere decir con BinaryFormatter (que es por lo general cuando esto patea) - no; no es (IMO) adecuado para el almacenamiento, solo para el transporte (y el control de versiones es mucho menos un problema aquí, ya que probablemente controle ambos extremos de la tubería). Muchos otros serializadores de cada variedad están disponibles; la mayoría de ellos hacen frente muy bien con control de versiones.

En lo personal, me gustaría ir para:

  • xml: XmlSerializer (DataContractSerializer no es tan flexible en la salida, pero puede manejar gráficos)
  • JSON: JavaScriptSerializer
  • binaria: protobuf-net (soy parcial aquí)

Con cualquiera de estos, que debe estar bien entre las versiones, la adición de los miembros, cambiar el nombre de los campos, etc.

En realidad, usaría el anterior 3 incluso si estaba transportando (no almacenando).

Cuestiones relacionadas