使用 CodeActivity 类编写工作流活动

CodeActivity 继承而创建的活动可以通过重写 Execute 方法来实现基本的命令性行为。

使用 CodeActivityContext

通过使用类型为 Executecontext 参数的成员,可从 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);
    }