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