Mantenga la compatibilidad de datos serializados .NET al mover clases

Tengo datos que han sido serializados. Las clases asociadas con los datos serializados son parte de un gran proyecto heredado que tiene una serie de referencias de terceros que no son necesarias para este conjunto básico de datos. Ahora tengo la necesidad de leer estos datos en otra aplicación. Me gustaría refactorizar las clases de datos en un proyecto separado que se pueda compartir entre las 2 aplicaciones para que no termine necesitando todas las bibliotecas de terceros. También quiero mantener la compatibilidad con los datos que se han guardado previamente. No necesito cambiar ningún campo en las clases, solo el proyecto donde se encuentran.

Hasta ahora, he trasladado las clases a un nuevo proyecto. He mantenido los espacios de nombres igual que en el antiguo proyecto. Pero, esto no ha sido suficiente para leer los objetos. Recibo una SerializationException que indica "Error de análisis, ningún tipo asociado con la clave Xml a1 MyCorp.MyApp.DatabaseRoot MyCorp.MyApp". Mirando el SOAP generado XML, los esquemas referenciados han cambiado. Por ejemplo, tengo una clase.MyCorp.Dashboard.DatabaseRoot originalmente en proyectoDashboardLibrary. Esto fue trasladado al proyectoDashboardData (pero sigue usando el espacio de nombresMyCorp.Dashboard.DatabaseRoot) El XML cambió de esta manera:

Orig: <a1:DatabaseRoot id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/MyCorp.Dashboard/MyCorp.Dashboard">
New:  <a1:DatabaseRoot id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/MyCorp.Dashboard/DashboardData">

Entonces, mis preguntas son

¿Es posible mover clases y mantener la compatibilidad? Me veo cerca de lograrlo.Si es así, ¿cómo controlo la información del último esquema de bits (MyCorp.Dashboard vs. DashboardData)? El original parece estar basado en la ubicación del directorio, mientras que el segundo es el nombre del proyecto. Intenté cambiar la estructura del directorio en el nuevo proyecto, pero no tuve suerte. ¿Algo más que me falta?

Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta