マネージ コードを使用した Web サービスへのアクセスのコード モデル

更新 : 2007 年 11 月

Web サービス クライアントは、Web サービスを参照して利用する任意のコンポーネント、サービス、またはアプリケーションです。Web サービス クライアントは、必ずしもデスクトップ アプリケーションなどのクライアント ベースのアプリケーションである必要はないことに注意してください。Web サービス クライアントは、他の Web アプリケーション、または他の Web サービスでもかまいません。

マネージ コードを使用して Web サービスにアクセスする場合には、プロキシ クラスおよび .NET Framework がすべてのインフラストラクチャ コーディングを処理します。Web サービスへのアクセスは、以下の基本的な手順に従います。

  • アクセスする Web サービスを見つける。

  • プロジェクトに Web 参照を追加することにより、Web サービスのプロキシ クラスを作成する。

  • クラスの名前空間を含めることにより、クライアント コードでプロキシ クラスを参照する。

  • クライアント コードで Web サービス プロキシ クラスのインスタンスを作成する。

  • プロキシのメソッドを使用して Web サービスにアクセスする。

詳細については、「方法 : マネージ コードを使用して Web サービスにアクセスする」または「方法 : マネージ コードを使用して Web サービスに非同期にアクセスする」を参照してください。

Web サービスの検索と Web 参照の追加

コーディング モデルを単純化するために、マネージ コードで記述されたアプリケーションは、Web 参照を使用して各 Web サービスをローカルに表現します。Web 参照は、[Web 参照の追加] ダイアログ ボックスを使用してプロジェクトに追加します。このダイアログ ボックスは、Web サービスに対する Web アドレスの参照をサポートしています。詳細については、「Web サービスの検索」および「Web 参照」を参照してください。

プロキシ クラスの参照

生成されたプロキシ クラスには独自の名前空間が関連付けられています。プロキシ クラスのインスタンスを作成するには、その前に、クライアント アプリケーションにその名前空間を追加する必要があります。詳細については、C# の場合は「using ディレクティブ」、Visual Basic .NET の場合は「参照と Imports ステートメント」を参照してください。

プロキシ クラスのインスタンスの作成

プロキシ クラスのメソッドを呼び出すには、最初にそのクラスのインスタンスを作成する必要があります。このプロセスは、ほかのクラスのインスタンスを作成する場合とまったく同じです。詳細については、C# の場合は「new」、Visual Basic .NET の場合は「オブジェクト変数の宣言」を参照してください。

プロキシを使用した Web サービスへのアクセス

Web サービス メソッドにアクセスする場合、クライアント アプリケーションは、プロキシ オブジェクトの対応する同期メソッドまたは非同期メソッドを呼び出します。その後、これらのメソッドは、ネットワーク経由のリモート呼び出しに必要な処理を行い、目的の Web サービス メソッドを呼び出します。既定では、プロキシ クラスは SOAP を使用して Web サービス メソッドにアクセスします。これは、サポートされている 3 つのプロトコル (HTTP-GET、HTTP-POST、HTTP-SOAP) の中で、SOAP が最も豊富なデータ型のセットをサポートしているためです。詳細については、「XML Web サービス ワイヤ形式」を参照してください。

概要

Visual Studio が Web サービスのサービス記述から直接生成したプロキシ クラスを使用することで、マネージ コードを使用した Web サービスへのアクセスは比較的単純なプロセスになります。プロキシ クラスは、メソッド呼び出しを要求メッセージに変換し、応答メッセージをメソッドの戻り値に変換する処理を行います。

アプリケーションが Web サービスを呼び出し、その Web サービスが他の Web サービスを呼び出して価格情報を取得するという関係を次の図に示します。この例では、Get Current Prices Web サービスが Web サービス プロバイダであり、同時に、Web サービス コンシューマでもあります。

Web サービス クライアントと Web サービス
アニメーション Web サービス クライアント

参照

概念

XML Web サービス クライアントの作成

その他の技術情報

マネージ コードを使用した Web サービスへのアクセス