4.2.1 クライアントスタブの生成
クライアントスタブ生成コマンド(if2cstub)を使用して,.NETインタフェース定義からクライアントスタブを生成します。
クライアントスタブは,クライアントスタブを利用するクライアントアプリケーション(Connector .NETのアプリケーション)を記述するプログラム言語で生成してください。
.NETインタフェース定義を記述したプログラム言語と生成するクライアントスタブのプログラム言語が異なる場合,クライアントスタブのメソッドの引数のパラメタ属性は次の表に従って対応づけられます。
プログラム言語とメソッドの引数のパラメタ属性(.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スキーマの詳細については,「4.1.1(4) .NETインタフェース定義からXMLスキーマへのマッピング」,および「4.1.2(3) サービス定義からXMLスキーマへのマッピング」を参照してください。
.NETインタフェース定義で指定されたサービスメソッドの引数および戻り値,入力データ用XMLスキーマおよび出力データ用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となります。