My.WebServices オブジェクト
更新 : 2007 年 11 月
現在のプロジェクトから参照する、各 XML Web サービスのインスタンスを作成したり、使用したりするためのプロパティを提供します。
解説
My.WebServices オブジェクトは、現在のプロジェクトから参照されている各 Web サービスのインスタンスを提供します。それぞれのインスタンスは必要に応じてインスタンス化されます。これらの Web サービスは My.WebServices オブジェクトのプロパティを通じてアクセスできます。このときに使用するプロパティの名前は、そのプロパティがアクセスする Web サービスの名前と同じです。SoapHttpClientProtocol を継承するクラスはすべて Web サービスです。Web サービスをプロジェクトに追加する方法については、「方法 : マネージ コードを使用して Web サービスにアクセスする」を参照してください。
My.WebServices オブジェクトは、現在のプロジェクトに関連付けられている Web サービスのみを公開します。参照された DLL 内で宣言されている Web サービスにはアクセスできません。DLL 内で宣言された Web サービスにアクセスするには、Web サービスの修飾名を使用する必要があります。Web サービスの修飾名は DllName.WebServiceName という形式になります。詳細については、「マネージ コードを使用した Web サービスへのアクセス」を参照してください。
このオブジェクトとプロパティは、Web アプリケーションでは使用できません。
プロパティ
My.WebServices オブジェクトのプロパティを使用すると、現在のプロジェクトから参照されている Web サービスのインスタンスにアクセスできます。プロパティの名前はそのプロパティがアクセスする Web サービスの名前と同じになり、プロパティの型は Web サービスの型と同じになります。
メモ : |
---|
名前の衝突が存在する場合、Web サービスにアクセスするためのプロパティ名は RootNamespace_Namespace_ServiceName になります。たとえば、Service1 という名前の 2 つの Web サービスがあるものとします。一方のサービスがルート名前空間 WindowsApplication1 の Namespace1 という名前空間に存在する場合、このサービスには My.WebServices.WindowsApplication1_Namespace1_Service1 を使用してアクセスできます。 |
My.WebServices オブジェクトのプロパティに初めてアクセスすると、対応する Web サービスの新しいインスタンスが作成され、プロパティに格納されます。以降は、そのプロパティにアクセスすると Web サービスのインスタンスが返されます。
Web サービスを破棄するには、その Web サービスを表すプロパティに Nothing を代入します。これにより、プロパティ Set アクセス操作子が格納値に Nothing を代入します。このプロパティに Nothing 以外の値を代入した場合は、setter が ArgumentException 例外をスローします。
My.WebServices オブジェクトのプロパティに Web サービスのインスタンスが格納されているかどうかを調べるには、Is または IsNot 演算子を使用します。これらの演算子を使用して、プロパティの値が Nothing かどうかを確認します。
メモ : |
---|
通常は、Is または IsNot 演算子が比較を実行するためには、プロパティの値を読み取る必要があります。しかし、プロパティの現在の値が Nothing である場合は、値を読み取ろうとすると Web サービスの新しいインスタンスが作成され、そのインスタンスが返されてしまいます。そこで、Visual Basic コンパイラは My.WebServices オブジェクトのプロパティを特別扱いとし、Is または IsNot 演算子がプロパティの値を変更せずにプロパティのステータスを確認できるようにしています。 |
処理手順
My.Forms オブジェクトに関連する操作の例を次の表に示します。
目的 |
参照項目 |
---|---|
Web サービスを非同期で呼び出し、完了時にイベントを処理する |
使用例
この例では、TemperatureConverter XML Web サービスの FahrenheitToCelsius メソッドを呼び出し、結果を返します。
Function ConvertFromFahrenheitToCelsius( _
ByVal dFahrenheit As Double) _
As Double
Return My.WebServices.TemperatureConverter.FahrenheitToCelsius(dFahrenheit)
End Function
この例を実行するためには、プロジェクトが Converter という名前の Web サービスを参照していて、その Web サービスが ConvertTemperature メソッドを公開している必要があります。詳細については、「方法 : マネージ コードを使用して Web サービスにアクセスする」を参照してください。
このコードは Web アプリケーション プロジェクトでは実行できません。
必要条件
プロジェクトの種類別の使用可/不可
プロジェクトの種類 |
使用可能 |
---|---|
Windows アプリケーション |
○ |
クラス ライブラリ |
○ |
コンソール アプリケーション |
○ |
Windows コントロール ライブラリ |
○ |
Web コントロール ライブラリ |
○ |
Windows サービス |
○ |
Web サイト |
X |
参照
処理手順
方法 : マネージ コードを使用して Web サービスにアクセスする