사용자 설정을 저장하기 위해 내 클래스 개체를 저장하기 위해 DataContractSerializer를 사용하고 있습니다. UserSettings 클래스는 다른 데이터 형식의 다른 개체를 사용합니다. DataContractSerializer의 KnownTypes 매개 변수에 모든 유형을 추가합니다. 하지만 앞으로의 호환성 문제가 있습니다. 새로운 데이터 유형을 사용하여 UserSerrings 클래스에 새 속성을 도입하면 내 프로그램의 새 버전에서도 작동합니다. 그러나 이전 버전에서는 데이터 형식이 KnownTypes 배열에 없기 때문에 XML 파일을 deserialize 할 수 없다는 예외를 throw합니다. 어쨌든 이전 버전에서는 사용되지 않았기 때문에 이러한 유형을 무시하기 만하면됩니다. 어떻게하면 알 수없는 속성/유형을 무시하고 XML 파일을 읽고 쓸 수 있습니까?DataContractSerializer 정방향 호환성 문제
1
A
답변
2
정확히 IExtensibleDataObject (확장 데이터)가 설계된 시나리오입니다! 데이터 계약의 v1이 확장 데이터 인터페이스로 장식 된 경우 미래의 알 수없는 유형을 포함하여 향후 계약에서 데이터를 무시하고 저장하고 왕복 할 수 있습니다.
Forward-compatible data contracts
And even more guidance on data contract versioning...
:나는이 기능에 대한 자세한 내용과 특정 상황을 구현하는 방법을 알아 보려면 다음 리소스를 권 해드립니다
+0
Love it. 감사! –
관련 문제
- 1. 이벤트/위임 필드의 DataContractSerializer 문제
- 2. IE7과의 호환성 문제?
- 3. PHP의 호환성 문제?
- 4. 브라우저 비 호환성 문제
- 5. vC++ 호환성 문제
- 6. IE 호환성 모드 문제
- 7. Mac 브라우저의 호환성 문제
- 8. Silverlight 개발 호환성 문제
- 9. 글꼴 역 호환성 문제
- 10. IE8 호환성 문제
- 11. iPhone 4.0 호환성 문제
- 12. Blackberry 호환성 문제
- 13. DataContractSerializer : 멤버를 삭제하지 않는 이유는 무엇입니까?
- 14. Flex 4의 브라우저 호환성 문제
- 15. WCF 이전 버전과의 호환성 문제
- 16. jQuery 양식 콜백 호환성 문제
- 17. IE7의 사이드 메뉴 호환성 문제
- 18. COM 인터페이스 Photoshop 호환성 문제
- 19. CSS 호환성 IE7 - IE8 문제
- 20. Codeigniter, WAMP, PHP 호환성 문제
- 21. Eclipse 및 WX 호환성 문제
- 22. Perl getcwd 정방향 슬래시 끝내기
- 23. DataContractSerializer 및 생성자 실버
- 24. DataContractSerializer 대 BinaryFormatter 성능
- 25. DataContractSerializer, KnownType 및 상속
- 26. DataContractSerializer : 참조 보존
- 27. WCF DataContractSerializer 동작
- 28. DataContractSerializer - XML 선언 무시
- 29. 여러 네임 스페이스가있는 DataContractSerializer
- 30. DataContractSerializer KnownType 특성이 존중되지 않습니까?
DCS 문제에 대한 해결책을 모르지만 해결책이있을 수 있습니다. 당신이 xml에 묶여 있지 않다면 ... –
나는 xml을 요구하지 않는다. 너는 무엇을 제안 하겠는가? – Steve
나는 대체 serializer 인 protobuf-net을 유지 관리합니다. 예기치 않은 하위 유형은 조용히 무시할 수 있지만 예상 한 계층 구조 유형의 값은 그대로 유지됩니다. –