나는 마이크로 소프트의 Best Practices: Data Contract Versioning을 읽고 있었다, 그들은 주 : DataContractSerializer : 멤버를 삭제하지 않는 이유는 무엇입니까?
는 가 속성이 이전 버전에서 거짓의 기본 속성에서 왼쪽 된 애드 팍 경우에도 이후 버전에서 데이터 멤버를 제거하지 마십시오.
누구나 이유를 제안 할 수 있습니까? 그들은 정교하지 않습니다. 데이터 멤버를 이후 버전에 추가하는 것이 좋다고 말하기 때문에 제거가 너무 효율적이라고 생각합니다. 이전 버전에서는이를 추가로 볼 수 있습니다.
차이점은 내가 DataMemberAttribute의 Order 속성을 사용하여 끝에 새 멤버를 추가해야한다는 것입니다. 반면에 제거되는 속성은 아마도 마지막에 없을 것입니다. 그러나 누락 된 회원은로드하는 동안 기본값으로 남게되므로 누락 된 회원은 문제가 없다고 분명히 말합니다.
무엇이 누락 되었습니까? 내 제품의 기능을 폐기하고 함께 간 [DataMember] 속성을 제거하면 어떤 버전 - interop 문제 (전방 호환성 및 이전 버전 호환성 모두)가 발생합니까?
또한 이전 버전과의 호환성에 관심이 없다고 결정한 경우 (예 : 이전 버전이 새로운 파일을 열지 않는다고 생각하는 경우) 그런 문제가 계속 적용됩니까?