4.2.2 クライアントスタブの使用方法
クライアントスタブを使用してサービス要求をする手順を次に示します。
-
TP1ConnectionManagerクラスのインスタンスを生成,または取り出します。
プロパティを特定のプロファイルから読み込む場合は,コンストラクタの引数にプロファイルIDを指定します。インスタンスの生成はアプリケーションごとに行うことを推奨します。
-
TP1ConnectionManagerクラスのGetConnectionメソッドでTP1Connectionオブジェクトを取得します。
コネクションプールに使用できるコネクションがあった場合は,この時点でコネクションプールからコネクションを取り出した状態になります。
-
クライアントスタブをTP1Connectionクラスのインスタンスごと,およびサービスグループごとにインスタンス化します。
-
必要に応じてプロパティ(Flags,WatchTime)を設定します。
クライアントスタブの初期値はFlagsにRpcInfo.DCNOFLAGS,WatchTimeに-1が設定されています。Flagsプロパティ,およびWatchTimeプロパティの詳細については,RpcInfoクラスの各プロパティの説明を参照してください。
-
入力パラメタにデータを設定します。
XmlDocumentを引数とするサービスメソッドの場合は,引数用のXmlDocumentクラスをインスタンス化して,入力データ用XMLスキーマに従ったXML文書の内容を設定します。
-
サービスメソッドを呼び出します。
-
戻り値や出力パラメタを参照して必要な処理をします。
XmlDocumentを戻り値とするサービスメソッドの場合は,出力データ用XMLスキーマに従って,返されたXML文書の内容を参照します。
-
TP1ConnectionクラスのDisposeメソッドを発行して,コネクションをコネクションプールに戻します。
複数のTP1Connectionオブジェクトを使う場合は,それぞれのインスタンスが不要になった時点でCloseメソッドを発行します。
- 注意事項
-
ASP.NET Webアプリケーションで使用する場合,TP1ConnectionクラスのDisposeメソッドは,次の時点で必ず発行してください。
-
各UIイベントハンドラの終了時
-
Webサービスメソッドの終了時
Disposeメソッドを適切に発行しないと,メモリリークの原因となります。
また,TP1ConnectionManagerクラスはASP.NETではアプリケーション状態,またはアプリケーションインスタンスに保持することを推奨します。各UIイベントハンドラやWebサービスメソッドごとに生成と削除を繰り返した場合,性能劣化やメモリ使用効率低下の原因となります。
-