次の方法で共有


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

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

svcutil.exe を使用する

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

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 を使用して作成されたアダプターのトラブルシューティング