UPDATE: Я думал, что я буду размещать свои выводы в качестве ответа. Отражение оказалось слишком сложным с точки зрения усилий по разработке, отслеживания ошибок времени выполнения и т. Д. Я помню, что я использовал другой подход, используя два разных процесса, когда сталкивался с подобной ситуацией долгое время назад (спасибо Брэндон).
Это план: ничего элегантного, но легкого с точки зрения разработки и устранения неполадок. Поскольку это одноразовая работа, нам просто нужно заставить ее работать.
Проведите процесс удаленного доступа (который я называю сервером) с новой версией приложения. У удаленного клиента есть ссылки для более старой версии.
Удаленный клиент создает экземпляры и загружает объекты с данными, необходимыми для миграции. Преобразование старых объектов в обычные сериализуемые объекты и передача параметров на сервер.
Remoting Server использует общие данные для создания экземпляров и загрузки новых объектов. Вызывает функции новых типов для сохранения своих данных.
Хорошие ссылки, спасибо. – 2011-11-21 23:46:31