分散トランザクション処理機能 TP1/Connector for .NET Framework 使用の手引

[目次][用語][索引][前へ][次へ]

3.2.1 クライアントスタブの生成

クライアントスタブ生成コマンド(if2cstub)を使用して,.NETインタフェース定義からクライアントスタブを生成します。

クライアントスタブは,クライアントスタブを利用するクライアントアプリケーション(Connector .NETのアプリケーション)を記述するプログラム言語で生成してください。

.NETインタフェース定義を記述したプログラム言語と生成するクライアントスタブのプログラム言語が異なる場合,クライアントスタブのメソッドの引数のパラメタ属性は次の表に従って対応づけられます。

表3-5 クライアントスタブでのパラメタ属性の対応づけ

プログラム言語とメソッドの引数のパラメタ属性(.NETインタフェース定義) メソッドの引数のパラメタ属性(クライアントスタブ)
C# J# Visual Basic
C# なし なし なし ByVal
out out Holderクラス※1 ByRef※1
ref ref Holderクラス ByRef
J# なし なし なし ByVal
Holderクラス ref※2 Holderクラス ByRef※2
Visual Basic なし なし なし ByVal
ByVal なし なし ByVal
ByRef ref Holderクラス ByRef
注※1
呼び出し元で値を設定しても,値はサーバに渡されません。
注※2
Holderクラスは,各Holderクラスが保持する型の参照渡しに対応づけられます。

 

クライアントスタブ生成コマンド(if2cstub)で-Xオプションを指定して,.NETインタフェース定義からクライアントスタブを生成すると,引数および戻り値がXmlDocumentクラス(System.Xml.XmlDocument)となるサービスメソッドがクライアントスタブに追加されます。このサービスメソッドの名称は,「〈.NETインタフェース定義で指定されたサービスメソッド名称〉ByXml」となります。

サービスメソッドの引数および戻り値のXmlDocumentクラスに指定できるXMLの形式は,クライアントスタブと一緒に生成される入力データ用XMLスキーマおよび出力データ用XMLスキーマで定義されます。XMLスキーマの詳細については,「3.1.1(4) .NETインタフェース定義からXMLスキーマへのマッピング」,および「3.1.2(3) サービス定義からXMLスキーマへのマッピング」を参照してください。

.NETインタフェース定義で指定されたサービスメソッドの引数および戻り値,入力データ用XMLスキーマおよび出力データ用XMLスキーマ,ならびにクライアントスタブに追加されたサービスメソッドの引数および戻り値の関係を次の表に示します。

表3-6 .NETインタフェース定義のサービスメソッドの引数および戻り値,定義されるXMLスキーマ,ならびにクライアントスタブのサービスメソッドの引数および戻り値の関係

プログラム言語別の,サービスメソッドの引数のパラメタ属性および戻り値(.NETインタフェース定義) 定義されるXMLスキーマ 出力されるサービスメソッド(クライアントスタブ)
引数 戻り値
引数 in C# なし 入力データ用
XMLスキーマ
XmlDocument XmlDocument,またはなし※2
J# なし
Visual Basic ByVal※1
out C# out 出力データ用
XMLスキーマ
XmlDocument,
またはなし※3
XmlDocument
J# ×
Visual Basic ×
inout C# ref 入力データ用
XMLスキーマ,
出力データ用
XMLスキーマ
XmlDocument XmlDocument
J# Holderクラス
Visual Basic ByRef
戻り値 C# 出力データ用
XMLスキーマ
XmlDocument,またはなし※3 XmlDocument
J#
Visual Basic
(凡例)
×:指定できません。
−:該当しません。
注※1
省略できます。
注※2
.NETインタフェース定義で指定されたサービスメソッドの引数がin属性だけで,かつ戻り値がない場合,クライアントスタブに出力されるサービスメソッドの戻り値は,なしとなります。それ以外は,XmlDocumentとなります。
注※3
.NETインタフェース定義で指定されたサービスメソッドの引数に,in属性またはinout属性がない場合,クライアントスタブに出力されるサービスメソッドの引数は,なしとなります。それ以外は,XmlDocumentとなります。