다른 경우에는 어셈블리 유형에서 버전을 제거하는 SerializationBinder를 추가하는 것이 좋습니다. 그러나 서명 된 어셈블리에있는 형식의 제네릭 컬렉션을 사용할 때는 해당 어셈블리를 기반으로 해당 버전이 엄격하게 버전이 지정됩니다.다른 버전의 서명 된 어셈블리로 작성된 제네릭을 deserialize하는 가장 좋은 방법은 무엇입니까?
다음은 내가 발견 한 것들입니다.
그러나 바인딩 프로세스가 전체적으로 변경되는 것은 다소 위험한 것으로 보입니다. 여러 스레드에서 직렬화가 발생하면 이상한 일이 발생할 수 있습니다. 아마도 더 나은 솔루션은 typeName에 대한 일부 정규식 조작을 수행하는 것입니다.
편집 : 문자열 기반 방법이 작동하지 않습니다. Generics는 분명히 강하게 이름 붙여진 유형을 필요로합니다. 네가 나 한테 묻는다면 아주 가증 스럽다.
빠른 참고 : 내 특별한 경우의 특성으로 인해 .NET 2.0 이하의 외부에서 직렬화를 사용할 수 없습니다. –
app.config 파일에서' '를 사용하는 것이 더 안전하고 코드가 필요하지 않습니다. –
이것은 널리 배포 된 라이브러리에서 사용되므로 app.config에서 제어 할 수 없습니다. –