Frage

Reflexion verwendet, muß ich zwei verschiedene Versionen des gleichen Baugruppe laden. Kann ich die zwei Versionen in 2 verschiedenen AppDomains im gleichen Prozess laden?

Ich brauche eine Datenmigration aus der alten Version der App auf die neue Version zu tun. Bitte lassen Sie mich wissen, ob dies möglich ist, oder sollte ich zwei getrennte Prozesse.

War es hilfreich?

Lösung 2

UPDATE : Ich dachte, ich meine Erkenntnisse als Antwort hinterlassen wird. Reflexion erwies sich als zu komplex in Bezug auf die Entwicklungsarbeit, Laufzeitfehler Tracking usw. Ich erinnere mich, einen anderen Ansatz zu tun mit zwei unterschiedlichen Verfahren, wenn sie mit einer ähnlichen Situation lange Zeit zurück (Danke Brandon) gegenüber.

Das ist der Plan: Nichts elegant, aber einfacher in Bezug auf die Entwicklung und Fehlersuche. Da es eine einmalige Aufgabe ist es, wir müssen nur arbeiten, um es machen.

Host einen Remote Prozess (was ich nenne der Server), um die neue Version der Anwendung mit. Ein Remote Client verfügt über Referenzen für die ältere Version.

Client instanziiert Remoting und lädt die Objekte mit Daten für die Migration erforderlich. Konvertieren Sie die alten Objekte in gemeinsamen serialisierbare Objekte und übergeben Sie als Parameter an den Server.

Remoting-Server verwendet die gemeinsamen Daten die neuen Objekte zu instanziiert und zu laden. Ruft die Funktionen auf den neuen Typen auf ihre Daten bestehen bleiben.

Andere Tipps

Wenn Sie es zur Entwurfszeit tun (die Sie Sie angeben, sind nicht) sollte Ihnen helfen:

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

Wenn Sie es dynamisch durch Reflexion tun (sieht aus wie der Fall hier) dies könnte Ihnen helfen:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top