Вопрос

Используя отражение, мне нужно загрузить две разные версии одной и той же сборки.Могу ли я загрузить две версии в двух разных доменах приложений в одном процессе?

Мне нужно выполнить перенос данных из старой версии приложения в новую версию.Пожалуйста, дайте мне знать, возможно ли это, или мне следует использовать два отдельных процесса.

Это было полезно?

Решение 2

ОБНОВЛЯТЬ:Я решил опубликовать свои выводы в качестве ответа.Отражение оказалось слишком сложным с точки зрения усилий по разработке, отслеживания ошибок во время выполнения и т. д.Я помню, как давным-давно столкнулся с похожей ситуацией, используя другой подход, используя два разных процесса (спасибо, Брэндон).

Это план:Ничего элегантного, но проще с точки зрения разработки и устранения неполадок.Поскольку это разовая работа, нам просто нужно заставить ее работать.

Разместите процесс удаленного взаимодействия (который я называю сервером) с новой версией приложения.У удаленного клиента есть ссылки на более старую версию.

Удаленный клиент создает экземпляры и загружает объекты с данными, необходимыми для миграции.Преобразуйте старые объекты в обычные сериализуемые объекты и передайте их в качестве параметров на сервер.

Удаленный сервер использует общие данные для создания экземпляров и загрузки новых объектов.Вызывает функции новых типов для сохранения их данных.

Другие советы

Если вы делаете это во время разработки (а вы указываете, что это не так), это должно вам помочь:

http://blogs.msdn.com/abhinaba/archive/2005/11/30/498278.aspx

Если вы делаете это динамически посредством отражения (похоже на этот случай), это может вам помочь:

http://infosysblogs.com/microsoft/2007/04/loading_multiple_versions_of_s.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top