私はこのインターフェイスをサーバーでDCに実装しません。IExtensibleDataObjectが前方互換性と後方互換性を達成しました
私はこの実装を自動的にクライアントでVS2008によって生成されましたが、これは問題ありません。
今私は(特定のサービスメソッドのサーバーDC(のInputParameter)を微分)に行くと、新しいフィールドを含めるように私のReference.csを編集
コンパイルは、それが動作しますが、古いサービスを指しているコードを実行します私の値を無視して、新しいフィールドの値を設定します(例のブール型をtrueに設定します)。
なぜ私は前方互換性を期待していますし、それだけで正常に動作しているDC
のためにサーバーに実装する必要があります。
#3で追加したコードを削除しました。コンパイル。
代わりに、同じフィールドをサーバーDCコンパイルに追加しました。
私は、クライアントからサーバへのより少ないデータを送信するコードを実行し、DCにはさらに多くのカラムがあります。それはうまく動作しています。これは下位互換性が問題なく動作していることを意味しますか?
私の理解が正しくないところもありますか?
私の環境
は、.NET 3.5 SP1
私の順方向および/または下位互換性を達成するのに役立つ方法は私の質問ですか? http://bloggingabout.net/blogs/vagif/archive/2009/03/29/iextensibledataobject-is-not-only-for-backward-compatibility.aspx http://stackoverflow.com/questions/3434015 – sahridhayan
私の答えとあなたが提供したリンクに基づいて、IExtensibleDataObjectの実装が必要なときはすでに理解しているはずです。サービス契約にデータラウンドトリッピングの操作が含まれていない場合は、IExtensibleDataObjectは必要ありません。 –