2010-02-24 3 views
1

이 거대한 문제로 인해 실행 중입니다. 여러 가지 이유로 인터페이스 정의를 다른 것으로 변경해야합니다. 이 인터페이스는 데이터베이스에 BLOB로 직렬화되었습니다. 이제는 오래된 BLOB를 새로운 BLOB로 마이그레이션하려고합니다. 하지만 원래 수정 된 인터페이스 정의와 나란히 원래 계약 정의를 유지 관리했습니다. 그러나 기존 인터페이스를 참조하는 모든 구체적인 유형은 이제 인터페이스의 새로운 수정 버전을 참조합니다.모든 구체적인 유형이 현재 인터페이스의 새 버전을 참조하더라도 객체를 원래 인터페이스로 역 직렬화 할 수 있습니까?

내 코드 기반에 이전 인터페이스 정의 만 존재합니다. 그래서 내가이 BLOB를 데이터베이스에서 오래된 계약 defintion으로 다시로드하려 할 때

역 직렬화 중에 "객체를이 유형의 배열에 저장할 수 없습니다."오류가 발생합니다. 누군가 도울 수 있습니까? ...

또한 Blob을 이전 인터페이스 정의로 역 직렬화하려는 동안 구식 버전이 필요합니다.

어떤 도움을 주시면 감사하겠습니다. 나는 정말로 붙어있다.

덕분에, AG

답변

1

당신은 SurrogateSelector 클래스 봤어? 이러한 클래스 변경이 필요할 때 비 직렬화를 제어하는 ​​데 도움이 될 수 있습니다.

관련 문제