CodeActivity クラスを使用したワークフロー アクティビティの作成
CodeActivity を継承して作成されたアクティビティは、Execute メソッドをオーバーライドすることで強制的な基本動作を実装できます。
CodeActivityContext の使用
ワークフロー ランタイムの機能は、Execute 型の context
パラメーターを使用して、CodeActivityContext メソッド内からアクセスできます。 CodeActivityContext を介して、以下のような機能を使用できます。
変数と引数の値を取得および設定。
Track を使用したカスタムの追跡機能。
GetProperty を使用したアクティビティの実行プロパティへのアクセス。
CodeActivity を継承するカスタム アクティビティを作成するには
Visual Studio 2010 を開きます。
[ファイル] 、 [新規作成] 、 [プロジェクト] の順に選択します。 [プロジェクトの種類] ウィンドウの [Visual C#] の下にある [ワークフロー 4.0] を選択し、 [v2010] ノードを選択します。 [テンプレート] ウィンドウで [アクティビティ ライブラリ] をクリックします。 新しいプロジェクトに HelloActivity という名前を付けます。
HelloActivity プロジェクト内の Activity1.xaml を右クリックして、 [削除] を選択します。
HelloActivity プロジェクトを右クリックして、 [追加] 、 [クラス] の順に選択します。 新しいクラスに HelloActivity.cs という名前を付けます。
HelloActivity.cs ファイルで、次の
using
ディレクティブを追加します。using System.Activities; using System.Activities.Statements;
クラス宣言に基本クラスを追加することにより、新しいクラスで CodeActivity から継承します。
class HelloActivity : CodeActivity
Execute メソッドを追加して、このクラスに機能を追加します。
protected override void Execute(CodeActivityContext context) { Console.WriteLine("Hello World!"); }
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); }
.NET