0

C# でコーディングされた Web サービスにアクセスしています - vb.net でアプリケーションをコーディングしています。Web サービスの所有者は最近、WSDL で公開されているクラスにいくつかの値を列挙に追加し、その他のいくつかの文字列値を追加して、WSDL の拡張を行いました。

パートナーがこの WSDL を更新したとき、アプリケーションは値をオブジェクトに適切にバインドしなくなりました。オブジェクトの一部には値が取り込まれましたが、オブジェクトの一部はそうではありませんでした...それらは NULL でした。

コンパイルしたコードを開いて Web リファレンスを更新すると、コードが再び機能し始めました。私のコードは正常に動作していますが、なぜこれが起こったのかを理解しようとしています. これは VB.net でのコーディングのアーティファクトですか、それとも対処するだけのものですか? 私の懸念は、将来の計画だけです。

ご協力ありがとうございました。

4

1 に答える 1

0

彼らは API を変更し、古い API との互換性を壊しました。彼らが WSDL を公開したという事実により、変更の修正が容易になりましたが、更新された Web サービスの実行が開始されると、元の WSDL から構築されたクライアントは (変更の性質に応じて) 機能するか機能しなくなります。これは他の言語でも同様に起こったであろうことを心に留めておくことができます. この破損を管理するための一般的な方法は、更新された WSDL を別の URL でホストすることです (通常、URL にバージョン番号が含まれています)。これにより、異なるバージョンを並行して実行することが容易になり、古いアプリを壊すことがなくなります。API を壊さなければならない場合もあるため、顧客との良好なコミュニケーションも重要です。開発者が何が起こっているのかを理解するのに役立つエラー メッセージを表示して、非推奨の API を最初に読み取り専用にするのが好きです。非推奨の API への API 呼び出しが表示されるとすぐに、メールを送信するか、電話に出ます。これは明らかに PayPal では機能しませんが、オプションであれば、パートナーを満足させることができます。これまでのところ、時間をかける価値はあります。

于 2013-05-10T21:34:41.720 に答える