我想在执行之前禁用 WF4 流程图上的一些步骤。我的流程图非常简单,一个起始节点和 3 个序列,每个序列都有一个 WriteLine 活动:“步骤 1”、“步骤 2”、“步骤 3”。
我想禁止“步骤 2”序列,所以控制台必须写“步骤 1”\n“步骤 3”,这是我的代码(它与顺序工作流完美配合,但不适用于流程图!!)
Activity a = new Activity1();
Activity customActivity = Customize(a);
WorkflowInvoker.Invoke(customActivity);
Console.ReadLine();
static System.Activities.Activity Customize(System.Activities.Activity scheme)
{
var activities = WorkflowInspectionServices.GetActivities(scheme);
var rootActivity = activities.FirstOrDefault();
if (rootActivity is Sequence)
{
var seqActivities = ((Sequence)rootActivity).Activities;
var badActivity = seqActivities.FirstOrDefault(a => a.DisplayName == "Step2");
seqActivities.Remove(badActivity);
}
if (rootActivity is Flowchart)
{
var seqActivities = ((Flowchart)rootActivity).Nodes.Cast<FlowStep>().ToList();
var badActivity = seqActivities.FirstOrDefault(a => a.Action.DisplayName == "Step2");
bool b = ((Flowchart)rootActivity).Nodes.Remove(badActivity);
}
return scheme;
}
谢谢你的帮助!