estaba leyendo Microsoft de Best Practices: Data Contract Versioning, y afirman:DataContractSerializer: ¿por qué no eliminar miembros?
No retire los miembros de datos en versiones posteriores, incluso si el isRequired propiedad fue dejada en su propiedad predeterminada de falsa en las versiones anteriores.
¿Alguien puede sugerir alguna razón para esto? Ellos no elaboran. Dado que dicen que está bien agregar miembros de datos en una versión posterior, parece que eliminarlos también estaría bien; de hecho, la versión anterior lo vería como un complemento.
La diferencia, supongo, es que se supone que debes agregar nuevos miembros al final (usando la propiedad Order en DataMemberAttribute), mientras que la propiedad que se eliminará probablemente no sea al final. Pero también dicen que los miembros faltantes se quedarán en su valor predeterminado durante la carga, por lo que está claro que los miembros faltantes están bien.
¿Qué me estoy perdiendo? ¿Qué problemas de interoperabilidad de versión causaría (tanto la compatibilidad con versiones anteriores como la compatibilidad con versiones anteriores) si obsoletos una característica de mi producto y eliminé la propiedad [DataMember] que la acompaña?
Además, si decidiera que no estaba interesado en la compatibilidad con versiones anteriores (es decir, si no me preocupaban las versiones anteriores que abren archivos más nuevos), ¿se aplicarán dichos problemas?