CodeActivity クラスを使用したワークフロー アクティビティの作成

CodeActivity を継承して作成されたアクティビティは、Execute メソッドをオーバーライドすることで強制的な基本動作を実装できます。

CodeActivityContext の使用

ワークフロー ランタイムの機能は、Execute 型の context パラメーターを使用して、CodeActivityContext メソッド内からアクセスできます。 CodeActivityContext を介して、以下のような機能を使用できます。

  • 変数と引数の値を取得および設定。

  • Track を使用したカスタムの追跡機能。

  • GetProperty を使用したアクティビティの実行プロパティへのアクセス。

CodeActivity を継承するカスタム アクティビティを作成するには

  1. Visual Studio 2010 を開きます。

  2. [ファイル][新規作成][プロジェクト] の順に選択します。 [プロジェクトの種類] ウィンドウの [Visual C#] の下にある [ワークフロー 4.0] を選択し、 [v2010] ノードを選択します。 [テンプレート] ウィンドウで [アクティビティ ライブラリ] をクリックします。 新しいプロジェクトに HelloActivity という名前を付けます。

  3. HelloActivity プロジェクト内の Activity1.xaml を右クリックして、 [削除] を選択します。

  4. HelloActivity プロジェクトを右クリックして、 [追加][クラス] の順に選択します。 新しいクラスに HelloActivity.cs という名前を付けます。

  5. HelloActivity.cs ファイルで、次の using ディレクティブを追加します。

    using System.Activities;
    using System.Activities.Statements;
    
  6. クラス宣言に基本クラスを追加することにより、新しいクラスで CodeActivity から継承します。

    class HelloActivity : CodeActivity
    
  7. Execute メソッドを追加して、このクラスに機能を追加します。

    protected override void Execute(CodeActivityContext context)
    {
        Console.WriteLine("Hello World!");
    }
    
  8. CodeActivityContext を使用して追跡レコードを作成します。

    protected override void Execute(CodeActivityContext context)
    {
        Console.WriteLine("Hello World!");
        CustomTrackingRecord record = new CustomTrackingRecord("MyRecord");
        record.Data.Add(new KeyValuePair<String, Object>("ExecutionTime", DateTime.Now));
        context.Track(record);
    }