문제

리플렉션을 사용하여 동일한 어셈블리의 서로 다른 두 가지 버전을 로드해야 합니다.동일한 프로세스에서 2개의 서로 다른 AppDomain에 2개의 버전을 로드할 수 있나요?

이전 버전의 앱에서 새 버전으로 일부 데이터를 마이그레이션해야 합니다.이것이 가능한지 또는 2개의 별도 프로세스를 사용해야 하는지 알려주십시오.

도움이 되었습니까?

해결책 2

업데이트:나는 내 결과를 답변으로 게시할 것이라고 생각했습니다.개발 노력, 런타임 오류 추적 등의 측면에서 리플렉션이 너무 복잡한 것으로 나타났습니다.오래 전에 비슷한 상황에 직면했을 때 두 가지 다른 프로세스를 사용하여 다른 접근 방식을 취했던 기억이 납니다(Brandon에게 감사드립니다).

계획은 다음과 같습니다.개발 및 문제 해결 측면에서 우아하지는 않지만 더 쉽습니다.일회성 작업이므로 제대로 작동하도록 만들어야 합니다.

새 버전의 애플리케이션이 있는 원격 프로세스(서버라고 함)를 호스팅합니다.원격 클라이언트에는 이전 버전에 대한 참조가 있습니다.

원격 클라이언트는 마이그레이션에 필요한 데이터가 포함된 개체를 인스턴스화하고 로드합니다.이전 객체를 직렬화 가능한 공통 객체로 변환하고 매개변수로 서버에 전달합니다.

Remoting Server는 공통 데이터를 사용하여 새 개체를 인스턴스화하고 로드합니다.데이터를 유지하기 위해 새 유형에 대한 함수를 호출합니다.

다른 팁

디자인 타임에 이를 수행하고 있다면(그렇지 않다고 표시함) 다음이 도움이 될 것입니다.

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