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

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

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

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

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

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