Microsoft のBest Practices: Data Contract Versioningを読んでいて、次のように述べています。
以前のバージョンでIsRequiredプロパティがデフォルト プロパティのfalseのままだったとしても、新しいバージョンではデータ メンバーを削除しないでください。
誰でもこれの理由を提案できますか? 彼らは詳しく説明しません。新しいバージョンではデータ メンバーを追加しても問題ないと言われているので、削除しても問題ないようです。事実上、古いバージョンでは追加と見なされます。
違いは、(DataMemberAttribute の Order プロパティを使用して) 最後に新しいメンバーを追加することになっているのに対し、削除されるプロパティはおそらく最後ではないということです。しかし、欠落しているメンバーはロード中にデフォルト値のままになるとも言われているため、欠落しているメンバーが問題ないことは明らかです。
私は何が欠けていますか?製品の機能を廃止し、それに付随する [DataMember] プロパティを削除した場合、どのようなバージョン相互運用の問題 (前方互換性と後方互換性の両方) が発生しますか?
また、前方互換性に関心がないと判断した場合 (つまり、古いバージョンが新しいファイルを開くことに関心がない場合)、そのような問題は引き続き適用されますか?