ОБНОВЛЕНИЕ : Я думал, что опубликую свои выводы как ответ. Отражение оказалось слишком сложным с точки зрения усилий по разработке, отслеживанию ошибок времени выполнения и т. Д. Я помню, что делал другой подход, используя 2 разных процесса, когда сталкивался с подобной ситуацией давным-давно (Спасибо, Брэндон).
Это план: Ничего изящного, но проще в плане разработки и устранения неполадок. Поскольку это разовая работа, мы просто должны заставить ее работать.
Проведите процесс удаленного взаимодействия (который я называю сервером) с новой версией приложения. У удаленного клиента есть ссылки на более старую версию.
Удаленный клиент создает и загружает объекты с данными, необходимыми для миграции.
Преобразуйте старые объекты в общие сериализуемые объекты и передайте их серверу в качестве параметров.
Remoting Server использует общие данные для создания экземпляров и загрузки новых объектов. Вызывает функции для новых типов для сохранения их данных.