電卓クライアントのサンプル

Download sample

電卓クライアント アプリケーションは、操作を電卓ステート マシン サービスまたは永続的電卓サービスに送信するときに使用できる Windows Presentation Foundation (WPF) に基づくアプリケーションです。Cookie を有効にすると、WSHttpContextBinding または WsHttpBinding バインディングなどのさまざまなプロトコルを使用した電卓サービスを使用できます。バインディングを切り替えても、同じワークフロー サービス インスタンスと通信できます。

Noteメモ :

このサンプルをビルドして実行するには、.NET Framework Version 3.5 をインストールする必要があります。Visual Studio 2008 では、プロジェクト ファイルとソリューション ファイルを開く必要があります。

電卓をオンにし、操作を実行し、電卓アプリケーションをオフにしないで終了することもできます。その後、電卓をオンにすると、電卓は以前に通信したワークフロー インスタンスと通信します。コンテキストは Context.ctx というファイルに格納されます。このファイルは電卓クライアント アプリケーションの \bin ディレクトリに格納されています。電卓クライアント アプリケーションを再起動するには、Client.ctx ファイルを削除します。

このサンプルのセットアップの詳細については、「Windows Communication Foundation サンプルの 1 回限りのセットアップの手順」を参照してください。

次のコードは、ICalculator サービス コントラクトを示します。

[ServiceContract(Namespace = "http://Microsoft.WorkflowServices.Samples")]
public interface ICalculator
{
    [OperationContract()]
    int PowerOn();
    [OperationContract()]
    int Add(int value);
    [OperationContract()]
    int Subtract(int value);
    [OperationContract()]
    int Multiply(int value);
    [OperationContract()]
    int Divide(int value);
    [OperationContract()]
    void PowerOff();
}  

電卓を設定するには

  1. 各サンプルの指示どおり、ステート マシンのワークフロー サービスのサンプルまたは永続性サービスのサンプルが インターネット インフォメーション サービス (IIS) 6.0 でホストされていることを確認します。インストールするサービスには、%systemdrive%\intetpub\wwwroot\ServiceModelSamples ディレクトリに Service.svc ファイルおよび Web.config ファイルがあります。Service.dll ファイルは %systemdrive%\intetpub\wwwroot\ServiceModelSamples\bin ディレクトリにあります。

  2. ワークフロー サービス ユーティリティをダウンロードし、CalculatorClient フォルダと WorkflowServiceUtility フォルダが同じ親フォルダ内に格納されるように保存します。

  3. ワークフロー サービス参照が正しく作成されるようにします。ソリューションを開いたときに未定義の場合は、参照を再度作成します。適切なアドレス (https://localhost/ServiceModelSamples/service.svc) でブラウザをポイントして、ステート マシン ワークフロー サービスまたは永続的電卓サービスの Web サービス記述言語 (WSDL: Web Services Descriptor Language) を参照できます。WSDL を参照するには、https://localhost/ServiceModelSamples/service.svc?wsdl をポイントします。

  4. 電卓クライアントは状態を保持したままサービスと通信する方法を示します。このような通信ができるため、会話を再開したときにサービスを続行できます。電卓を使用するには、数字と実行する演算を入力します。電卓クライアントの通信先のサービスは、直前の演算の結果を使用して指定された演算を実行します。開始時には直前の演算の結果は 0 です。たとえば、電卓クライアントを起動して数字「2」を入力し、加算演算 (+) を入力したとします。サービスでは、直前の演算の結果 (この場合 0) に 2 を加算し、電卓は結果 (2) を表示します。「3」と入力してから加算演算 (+) を入力すると、直前の演算の結果 (2) に 3 が加算されるため、結果は 5 になります。等号 (=) は直前の演算の結果に 0 を加算します。上記の例では、「2」と入力してから等号を入力すると、直前の演算結果 (この場合は 5) に 0 が加算され、5 が返されます。

  5. クライアントを終了してから再起動すると、直前の演算の結果が電卓に表示されます。そのポイントから演算を続行できます。

  6. 電卓クライアントは Client.ctx テキスト ファイルを使用して、最初に呼び出しが行われた永続性のある場所 (この場合、サンプルの \bin ディレクトリ) にコンテキストを格納します。クライアントを再度開くと、ファイルがあるかどうかが確認されます。ファイルがある場合、クライアントは格納されたコンテキストを作成されているチャネルに適用します。ワークフロー サービスが終了し、\bin ディレクトリにまだ残っている Context.ctx ファイルでクライアントを開く場合は、電卓クライアントはコンテキストをチャネルに適用しようとしますが、通信するワークフロー インスタンスが存在しないため、エラーが発生します。ファイルを削除して、やり直してください。

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.