在工作流中移除activity
using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())
{
AutoResetEvent waitHandle = new AutoResetEvent(false);
workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e) { waitHandle.Set(); };
workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)
{
Console.WriteLine(e.Exception.Message);
waitHandle.Set();
};
WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(WorkflowConsoleApplication1.Workflow1));
instance.Start();
// 检索此工作流实例的根活动。
//
// 返回结果:
// 一个 System.Workflow.ComponentModel.Activity 对象。
Activity WFActivity = instance.GetWorkflowDefinition();
//初始化 System.Workflow.ComponentModel.WorkflowChanges 类的新实例。
//
// 参数:
// rootActivity:
// 工作流的根 System.Workflow.ComponentModel.Activity。
System.Workflow.ComponentModel.WorkflowChanges change = new WorkflowChanges(WFActivity);
// 摘要:
// 获取表示所有子活动的集合 System.Workflow.ComponentModel.ActivityCollection 的对象。
//
// 返回结果:
// 所有子活动的 System.Workflow.ComponentModel.ActivityCollection。
Activity activity = change.TransientWorkflow.Activities["codeActivity2"];
change.TransientWorkflow.Activities.Remove(activity);
instance.ApplyWorkflowChanges(change);
waitHandle.WaitOne();
Console.WriteLine(" 工作流执行完毕!");
}