¿Cuáles son los métodos para implementar la compatibilidad de versiones con la serialización de .NET?¿Compatibilidad de versión con serialización .NET?
Respuesta
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
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).
- 1. Compatibilidad con versiones anteriores de la serialización de vector (de) con Boost.serialization
- 2. Serialización y ofuscación en .NET
- 3. Compatibilidad con .NET Framework para hardware multinúcleo
- 4. Compatibilidad con JPEG 2000 en C# .NET
- 5. Compatibilidad con versiones anteriores en .NET con BinaryFormatter
- 6. Compatibilidad con IronPython 3
- 7. serialización de protobuf-net enumeración
- 8. .NET 4.5 RC Framework CLR - Compatibilidad con Windows XP
- 9. Serialización/deserialización de Protobuf-net
- 10. .NET WebAPI serialización k_BackingField Nastiness
- 11. serialización Boost: especificando una plantilla clase versión
- 12. Compiler versión vs NET Framework versión - Escenario con aplicaciones ASP.NET
- 13. Compatibilidad de .NET csc y Mono mcs
- 14. Número de versión .NET (versión del instalador)
- 15. .NET/C# problemas de serialización decimal
- 16. Compatibilidad con GIF con Android
- 17. .NET: con respecto a AssemblyVersion, ¿qué define la compatibilidad binaria?
- 18. Mejor compatibilidad con .NET SDK: ¿Canon o Nikon?
- 19. ¿.NET Framework 4.5 proporciona compatibilidad con SSE4/AVX?
- 20. Compatibilidad con Visual Studio 2008 para .NET 4
- 21. Administrar la compatibilidad de la versión de Java
- 22. Deserialización compatibilidad con versiones anteriores
- 23. detección de compatibilidad de la versión de jQuery
- 24. compatibilidad con normas g ++
- 25. .Net Serialización XML basada en un XSD?
- 26. defecto .NET Runtime Versión
- 27. Boost serialización: excepción de archivo "versión no compatible"
- 28. Compatibilidad HBASE 0.94.1 con hadoop
- 29. ISerializable y compatibilidad con versiones anteriores
- 30. compatibilidad del sistema operativo para varias versiones de .NET Framework