从 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); }