手順 1: エコー アダプターの送信ハンドラーをテストする
完了までの時間: 15 分
この手順では、エコー アダプターによって提供される 3 つの送信操作をテストします。 これを行うには、Visual Studio、アダプター サービス参照の追加 Visual Studio Plug-In、およびカスタム コードを使用します。
前提条件
この手順を完了するには、「 チュートリアル 1: エコー アダプターの開発」を完了している必要があります。
Visual Studio プロジェクトを作成する
Visual Studio を起動します。
Visual Studio の [ ファイル ] メニューの [ 新規作成] をポイントし、[ プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスで、次の操作を行います。
プロパティ 目的 プロジェクト タイプ [ Visual C#] をクリックします。 テンプレート [コンソール アプリケーション] をクリックします。 名前 「ConsumeEchoAdapter_Outbound」と入力します。 場所 「C:\Tutorials」と入力します。 [ソリューション名] 「ConsumeEchoAdapter_Outbound」と入力します。 [OK] をクリックします。
Visual Studio の [ ファイル ] メニューの [ すべて保存] をクリックします。
WCF クライアントを参照、検索、生成する
Visual Studio ソリューション ウィンドウで、 プロジェクトConsumeEchoAdapter_Outbound 右クリックし、[ アダプター サービス参照の追加 ] を選択して、アダプター サービス参照の追加プラグインを起動します。
[ アダプター サービス参照の追加] 画面で、バインドを選択します。 これを行うには、 echoAdapterBindingV2 を選択します。
次に、[構成...] をクリックしてアダプターと接続のプロパティを 構成します。 これにより、[ アダプターの構成] 画面が表示されます。
[ アダプターの構成 ] 画面で、[ URI のプロパティ ] タブを選択して接続プロパティを構成します。 カスタムエコーアダプターカテゴリが表示されていることに注意してください - 接続 と 形式。 [ 書式 ] カテゴリで、 EchoInUpperCase を True に変更します。
[ アダプターの構成 ] 画面で、[ バインドのプロパティ ] タブを選択してアダプターのプロパティを構成します。 カスタム エコー アダプターカテゴリ [ 受信] と [ その他] が表示されていることに注意してください。 [ その他 ] カテゴリで、[ カウント] を 3 に変更します。
[ OK] をクリックして[アダプターの構成 ] 画面を閉じ、[ アダプター サービス参照の追加] 画面に戻ります。
次に、[ 接続 ] をクリックしてエコー アダプター (およびサポートされている架空の基幹業務システム) に接続します。 しばらくすると、接続の状態が [接続済み] に変わると、カテゴリ ツリー ([ カテゴリの選択] の下) が設定されます。
カテゴリ ツリーで、[ メイン カテゴリ] をクリックします。 これにより、使用可能なカテゴリと操作の一覧に 3 つの送信操作が設定されます。 カテゴリはありません。
Note
既定のコントラクトの種類は [送信] です。 カテゴリの結果は、このコントラクトの種類と一致します。
[ 利用可能なカテゴリと操作] で、3 つの操作をすべて選択します。 操作の数が多い場合は、検索を使用して選択内容を絞り込む場合があります。この場合、3 つしかありません。 [ 追加] をクリックして、選択した操作を生成された WCF インターフェイスの一部にします。
[ OK] を クリックして WCF インターフェイスを生成します。 これにより、アプリケーション構成ファイル (app.config) と WCF クライアント プロキシ (EchoAdapterBindingClient.cs) がプロジェクトに追加されます。
Visual Studio メニューの [ ファイル ] をクリックし、[ すべて保存] を選択します。
アダプター認証を構成する
Visual Studio の [ソリューション] ウィンドウで、[ app.config] をダブルクリックします。
要素で
address
属性をendpoint
見つけます。 次のようになっているはずです。<endpoint address="echov2://lobhostname/lobapplication?enableAuthentication=False&echoInUpperCase=True" binding="echoAdapterBindingV2" bindingConfiguration="EchoAdapterBinding" contract="EchoOutboundContract" name="EchoAdapterBinding_EchoOutboundContract" />
次に示すように 、enableAuthenticationを False から True に変更します。 これには、呼び出し元のアプリケーションがアダプターに資格情報を渡す必要があります。
<endpoint address="echov2://lobhostname/lobapplication?enableAuthentication=True&echoInUpperCase=True" binding="echoAdapterBindingV2" bindingConfiguration="EchoAdapterBinding" contract="EchoOutboundContract" name="EchoAdapterBinding_EchoOutboundContract" />
ソリューションを保存するには、Visual Studio メニューの [ ファイル ] をクリックし、[ すべて保存] を選択します。
サンプル XML ファイルを作成する
メモ帳のインスタンスを起動します。 [スタート] メニューを使用して、[ すべてのプログラム | アクセサリ ] をクリックし、[ メモ帳] を選択します。
次のサンプル データをメモ帳エディターにコピーします。
<?xml version="1.0" encoding="utf-16"?> <ns0:greeting xmlns:ns0="echov2://microsoft.adapters.samples.echov2/PreDefinedTypes"> <ns0:address> <ns0:street1>123 Microsoft Way</ns0:street1> <ns0:street2>Building # 4599</ns0:street2> <ns0:city>Redmond</ns0:city> <ns0:state>WA</ns0:state> <ns0:zip>98052</ns0:zip> </ns0:address> <ns0:greetingText>Welcome to Redmond!</ns0:greetingText> </ns0:greeting>
[メモ帳] メニューの [ ファイル ] をクリックし、[ 名前を付けて保存] を選択します。 ファイル名に「CustomGreetingInstance.xml」と入力し、エンコードに Unicode を選択し、プロジェクト ディレクトリまたは別の適切な場所に保存します。 後で参照できるように、完全なパスとファイル名に注意してください。
ファイルが正常に保存されたら、テキスト エディターを閉じます。
エコー アダプターをテストする
ソリューション エクスプローラーで Program.cs ファイルをダブルクリックします。
Visual Studio エディターの Main メソッド内で、次のコード行を追加して、生成された WCF クライアントのインスタンスを作成します。
EchoOutboundContractClient client = new EchoOutboundContractClient();
次に、アダプターの資格情報を確立するコードを追加します。 エコー アダプターで認証を有効にすると、ユーザー名の存在がチェックされますが、値はチェックされません。
// pass client credentials client.ClientCredentials.UserName.UserName = "username";
EchoStrings 操作を呼び出すコードを追加して続行します。
// Invoke EchoStrings() Console.WriteLine("Invoking EchoStrings() method against the adapter..."); string[] response = client.EchoStrings("Bonjour!"); foreach (string data in response) { Console.WriteLine(data); }
EchoGreetings 操作を呼び出すコードを追加して続行します。
// Invoke EchoGreetings() Console.WriteLine("\nInvoking EchoGreetings() method against the adapter..."); microsoft.adapters.samples.echov2.Types.Greeting greeting = new microsoft.adapters.samples.echov2.Types.Greeting(); greeting.id = Guid.NewGuid(); greeting.sentDateTime = DateTime.Now; greeting.greetingText = "Hello World!"; greeting.name = new microsoft.adapters.samples.echov2.Types.Name(); greeting.name.salutation = microsoft.adapters.samples.echov2.Types.Salutation.Miss; greeting.name.firstName = "Jane"; greeting.name.middleName = "Z."; greeting.name.lastName = "Smith"; microsoft.adapters.samples.echov2.Types.Greeting[] greetingArray = client.EchoGreetings(greeting); foreach (microsoft.adapters.samples.echov2.Types.Greeting data in greetingArray) { Console.WriteLine(data.id + " " + data.sentDateTime + " " + data.greetingText + " " + data.name.firstName ); }
EchoCustomGreetingsFromFile 操作を呼び出すコードを追加して続行します。
// Invoke EchoCustomGreetingFromFile() Console.WriteLine("\nInvoking EchoCustomGreetingFromFile() method against the adapter ..."); // Copy the sample data from CustomGreeting-instance.xml file and place in appropriate folder // as specified in the operation parameter microsoft.adapters.samples.echov2.PreDefinedTypes.CustomGreeting // change the Uri to point to the greeting instance xml file you created customGreeting = client.EchoCustomGreetingFromFile(new Uri(@"c:\CustomGreetingInstance.xml")); Console.WriteLine(customGreeting.greetingText + " " + customGreeting.address.city); client.Close(); Console.ReadLine();
EchoCustomGreetingsFromFile テスト コードで、前の手順で作成したファイルがカスタム あいさつ文で使用されていることを確認します。 ファイルの場所を反映するようにコードを変更します。
Visual Studio の [ ファイル ] メニューの [ すべて保存] をクリックします。
アプリケーションを実行します。 次のような出力が表示されます。
アダプターに対する EchoStrings() メソッドの呼び出し...
Bonjour!
Bonjour!
Bonjour!
Bonjour!
Bonjour!
アダプターに対する EchoGreetings() メソッドの呼び出し...
179665bb-db21-42ac-810e-77ebfa99d460 9/13/2007 3:18:07 PM Hello World! Jane
179665bb-db21-42ac-810e-77ebfa99d460 9/13/2007 3:18:07 PM Hello World! Jane
179665bb-db21-42ac-810e-77ebfa99d460 9/13/2007 3:18:07 PM Hello World! Jane
179665bb-db21-42ac-810e-77ebfa99d460 9/13/2007 3:18:07 PM Hello World! Jane
179665bb-db21-42ac-810e-77ebfa99d460 9/13/2007 3:18:07 PM Hello World! Jane
アダプター ... に対する EchoCustomGreetingFromFile() メソッドの呼び出し
レドモンドへようこそ! レドモンド
Enter キーを押してプログラムを停止します。
私は何をしましたか?
この手順では、チュートリアル 1 で開発したエコー アダプターによって公開される 3 つの送信操作のテスト アプリケーションを作成しました。 これを行うには、Visual Studio プロジェクトを作成し、WCF サービスを生成し、WCF サービスをホストするコードを指定しました。 最後に、テスト アプリケーションを実行しました。
次の手順
受信操作をテストするには、「 手順 2: エコー アダプターの受信ハンドラーをテストする」に進みます。
参照
チュートリアル 2: .NET からエコー アダプターを使用する
手順 2: エコー アダプターの受信ハンドラーをテストする