次の方法で共有


WCF LOB アダプター SDK を使用して WSDL を生成する

アダプターの開発中、または LOB システムから返されるメタデータが変更された場合は、多くの場合、アダプターから返される Web サービス記述言語 (WSDL) を表示して、操作のメタデータが正しく生成されていることを確認すると便利です。 WSDL を生成するには、いくつかの方法があります。 このトピックでは、svcutil.exe とメタデータ検索の参照コントロールの使用について説明します。

Svcutil.exe の使用

Svcutil.exe は、URL とオプションのスイッチを受け入れ、WSDL を返す Windows SDK に付属するコマンド ライン ユーティリティです。 エコー アダプターの WSDL を返すために svcutil.exe を使用する例を次に示します。

Svcutil.exe “echov2://lobhostname/lobapplication?enableAuthentication=False” /target:metadata

これにより、メタデータが Microsoft.Adapters.Samples.Echov2.wsdl として保存されます。 アダプターに多数の操作がある場合は、URI の一部として 'op=OperationName' を使用して、目的の操作のみを返すように選択できます。 これを使用して EchoStrings 情報のみを返す例を次に示します。

SvcUtil.exe “echov2://lobhostname/lobapplication?enableAuthentication=False&op=Echo/EchoStrings” /target:metadata  

メタデータ検索参照コントロールを使用する

メタデータ検索参照コントロールは、WCF LOB アダプター SDK に含まれるウィザードで使用される Windows コントロールです。 このコントロールを Visual Studio の任意のWindows フォーム プロジェクトに追加し、それを使用してアダプター、目的の操作を選択し、WSDL を生成できます。

  1. Visual Studio のコマンド プロンプトを開きます。

  2. [ファイル] メニューで、[新規作成] を選択し、[プロジェクト] をクリックします。

  3. [ 新しいプロジェクト ] ダイアログ ボックスで、[テンプレート] から [Windows アプリケーション ] を選択 します。 プロジェクト名を入力し、[OK] をクリックします。

  4. ツールボックスを開き、[コモン コントロール] を展開し、[ツールボックス] を右クリックして、[項目の選択] をクリックします。

  5. [ツールボックス項目の選択] ダイアログ ボックスで、[.NET Framework コンポーネント] タブの [MetadataUserControl] を見つけて、この項目の横にある [チェック] ボックスを選択し、[OK] をクリックします

  6. ツールボックスから MetadataUserControl を Form1 にドラッグします。 コントロール全体を表示するには、フォームのサイズを変更する必要がある場合があります。 プロジェクトを今すぐ実行し、コントロールが機能していることを確認し、アダプターと操作を選択できるようにする必要があります。

  7. このコントロールを使用して WSDL を生成するには、このコントロールの GetWsdl メソッドを呼び出すコードをフォームに追加する必要があります。 次の例では、 GetWsdl を 呼び出してデータをファイルに保存する方法を示します。

    private void button1_Click(object sender, EventArgs e)  
    {  
       ServiceDescription sd = mdUserControl.GetWsdl();  
       FileStream myFileStream = new FileStream(tbWsdlFileName.Text, FileMode.OpenOrCreate, FileAccess.Write);  
       StreamWriter myStreamWriter = new StreamWriter(myFileStream);  
       sd.Write(myStreamWriter);  
       myStreamWriter.Flush();  
       myStreamWriter.Close();  
       MessageBox.Show("WSDL file " + tbWsdlFileName.Text + " is created.");  
    }  
    
    

参照

WCF LOB アダプター SDK を使用して作成されたアダプターのトラブルシューティング