Manter a compatibilidade de dados serializados do .NET ao mover classes

Eu tenho dados que foram serializados. As classes associadas aos dados serializados fazem parte de um grande projeto herdado que possui várias referências de terceiros que não são necessárias para esse conjunto principal de dados. Agora eu preciso ler esses dados em outro aplicativo. Eu gostaria de refatorar as classes de dados em um projeto separado que pode ser compartilhado entre o aplicativo 2, para que eu não precise de todas as bibliotecas de terceiros. Também quero manter a compatibilidade com os dados que foram salvos anteriormente. Não preciso alterar nenhum campo nas classes, apenas o projeto em que elas estão localizadas.

Até agora, mudei as aulas para um novo projeto. Eu mantive os namespaces iguais aos do projeto antigo. Mas isso não foi suficiente para ler os objetos. Recebo uma SerializationException informando "Erro de análise, nenhum tipo associado à chave XML a1 MyCorp.MyApp.DatabaseRoot MyCorp.MyApp". Observando o XML gerado pelo SOAP, os esquemas mencionados foram alterados. Por exemplo, eu tenho uma classeMyCorp.Dashboard.DatabaseRoot originalmente no projetoDashboardLibrary. Isso foi movido para o projetoDashboardData (mas ainda usando espaço para nomeMyCorp.Dashboard.DatabaseRoot) O XML mudou desta maneira:

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">

Então, minhas perguntas são

É possível mover classes e manter a compatibilidade? Eu pareço perto de conseguir.Nesse caso, como faço para controlar as informações do esquema do último bit (MyCorp.Dashboard vs. DashboardData). O original parece baseado no local do diretório, enquanto o segundo é o nome do projeto. Tentei alterar a estrutura de diretórios no novo projeto, mas não tive sorte. Falta mais alguma coisa?

Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion