c# - what - Cargando diferentes versiones del mismo ensamblaje
what can be done with reflection in c# (2)
Si lo hace en el momento del diseño (que usted indica que no), esto lo ayudará a:
http://blogs.msdn.com/abhinaba/archive/2005/11/30/498278.aspx
Si lo hace dinámicamente mediante la reflexión (se parece al caso aquí), esto podría ayudarlo a:
http://infosysblogs.com/microsoft/2007/04/loading_multiple_versions_of_s.html
Usando la reflexión, necesito cargar 2 versiones diferentes del mismo conjunto. ¿Puedo cargar las 2 versiones en 2 AppDomains diferentes en el mismo proceso?
Necesito hacer una migración de datos de la versión anterior de la aplicación a la nueva versión. Por favor, avíseme si esto es posible o debería usar 2 procesos separados.
ACTUALIZACIÓN : pensé que publicaré mis hallazgos como una respuesta. La reflexión resultó demasiado compleja en términos de esfuerzo de desarrollo, seguimiento de errores de tiempo de ejecución, etc. Recuerdo haber hecho un enfoque diferente al usar 2 procesos diferentes cuando me enfrenté a una situación similar hace mucho tiempo (gracias Brandon).
Este es el plan: nada elegante pero más fácil en términos de desarrollo y solución de problemas. Como es un trabajo de una sola vez, solo tenemos que hacerlo funcionar.
Aloje un proceso remoto (que llamo el servidor) con la nueva versión de la aplicación. Un cliente remoto tiene referencias para la versión anterior.
El cliente remoto crea una instancia y carga los objetos con los datos necesarios para la migración. Convierta los objetos viejos en objetos serializables comunes y pase como parámetros al servidor.
Remoting Server usa los datos comunes para instanciar y cargar los nuevos objetos. Invoca las funciones en los nuevos tipos para persistir sus datos.