クラス ライブラリ内の Web 参照とカスタム Web サービス クライアント プロキシ クラス

更新 : 2007 年 11 月

アプリケーション デザイナでは、参照プロジェクトまたはアセンブリで Windows、Office、または ASP.NET の各アプリケーションの Web サービス コンシューマ エンドポイントとして定義されている Web サービス クラスまたはカスタム Web サービス クライアント プロキシ クラスへの参照を表すことができます。このタスクを実行するには、特定の手順を行って、これらの要素を Web サービス コンシューマ エンドポイントの "間接" タイプとし、Web サービス コンシューマ エンドポイントに接続して表示する必要があります。

ms242497.alert_note(ja-jp,VS.90).gifメモ :

コンシューマ アプリケーションを Web サービス プロバイダ エンドポイントに接続し、これらの要素をクラス ライブラリに移動することにより、Web サービス コンシューマ エンドポイントを直接追加してこれらの要素を表すことはできません。

ただし、これらの手順を行う前に、Web サービス コンシューマ アプリケーションを実装し、アプリケーション プロジェクトにアプリケーション構成ファイル (Web.config または App.config) を含める必要があります。詳細については、「アプリケーション ダイアグラムでのアプリケーションの実装」を参照してください。

クラス ライブラリ内の Web 参照とカスタム Web サービス クライアント プロキシ クラスをリバース エンジニアリングするための要件

ASP.NET アプリケーションでは、適切なエントリを Web.config 構成ファイルに追加する必要があります。また、一致する完全修飾名を持つプロキシ クラスが存在し検出できることも必要です。ただし、Windows アプリケーションおよび Office アプリケーションでは、このようなエントリは App.config 構成ファイル内で WebServiceURL 型として指定されているだけで十分です。ただし、これらのエントリが WebServiceURL 型として指定されていない場合や、String 型として指定されている場合は、一致する完全修飾名を持つプロキシ クラスが存在し検出できる必要があります。詳細については、「カスタムの Web サービス クライアント プロキシ クラスに関する考慮事項」を参照してください。

Web サービス コンシューマ アプリケーションが、Web 参照またはカスタム Web サービス クライアント プロキシ クラスを定義するクラス ライブラリを参照する場合は、そのクラス ライブラリへのプロジェクト参照を Web サービス コンシューマ アプリケーション プロジェクトに追加する必要があります。ただし、アプリケーション プロジェクトの構成ファイルの設定が、クラス ライブラリの構成ファイルの設定をオーバーライドします。このため、クラス ライブラリの構成ファイルで作成された設定を使用するためには、その設定をコンシューマ アプリケーションの構成ファイルにコピーする必要があります。詳細については、「方法 : アプリケーション ダイアグラムでアプリケーションからクラス ライブラリを参照する」を参照してください。

これらの要件が満たされている場合、アプリケーション デザイナは、構成ファイルのエントリを Web サービス コンシューマ エンドポイントのようにリバース エンジニアリングします。また、これらのエントリで指定されている Web サービスの URL が既存の Web サービス プロバイダ エンドポイントの URL と一致する場合は、これらのコンシューマ エンドポイントとプロバイダ エンドポイント間の接続も表示されます。一致する Web サービス プロバイダ エンドポイントが存在しなくても、その URL の末尾に "?wsdl" または "?disco" を追加して検索したときに Web サービスの有効な WSDL ファイルが見つかった場合は、外部 Web サービスがアプリケーション ダイアグラムに追加され、Web サービス コンシューマ エンドポイントに接続されます。URL を使用した検索で WSDL ファイルが見つからなかった場合、Web サービス コンシューマ エンドポイントは未接続のままになります。

間接的な Web サービス コンシューマ エンドポイントに影響する変更

一部の変更は、次のように間接的な Web サービス コンシューマ エンドポイントとその接続に影響を与えます。

  • 間接的な Web サービス コンシューマ エンドポイントへの接続をアプリケーション ダイアグラムに作成すると、接続される Web サービスの URL がコンシューマ アプリケーションの構成ファイルに追加されます。また、これらの接続をアプリケーション ダイアグラムから削除すると、接続される Web サービスの URL がコンシューマ アプリケーションの構成ファイルから削除されます。

  • 間接的な Web サービス コンシューマ エンドポイントをアプリケーション ダイアグラムから削除すると、対応する構成ファイルのエントリがクラス ライブラリから削除されますが、Web 参照やカスタム プロキシ クラスは削除されません。

    ms242497.alert_note(ja-jp,VS.90).gifメモ :

     間接的なエンドポイントを削除する場合は、アプリケーションまたは参照クラス ライブラリが対応する構成ファイルのエントリを参照していないことを確認してください。

  • ASP.NET アプリケーションが参照するプロジェクトやアセンブリのプロキシ クラスを削除または名前変更すると、対応する Web サービス コンシューマ エンドポイントが削除されます。

    これは、構成ファイルのエントリがプロキシ クラスと一致しなくなるためです。一致する名前のプロキシ クラスを追加して戻すと、コンシューマ エンドポイントが再表示されます。

  • Web サービス コンシューマ エンドポイントの Web 参照がクラス ライブラリまたはアセンブリ内に置かれている場合、このエンドポイントをコピーして貼り付けると、貼り付けられたエンドポイントの Web 参照はルート プロジェクトに表示されます。

参照

参照

カスタムの Web サービス クライアント プロキシ クラスに関する考慮事項

その他の技術情報

アプリケーション ダイアグラムのアプリケーションからのクラス ライブラリの参照