如何:创建顺序工作流
工作流可基于内置活动以及自定义活动来构造。 本主题分步介绍如何创建使用内置活动(如 Sequence 活动)以及之前的如何:创建活动中的自定义活动的工作流。 该工作流模拟猜数游戏。
注意
入门教程中的每个主题都依赖于前面的主题。 若要完成本主题,必须先完成如何:创建活动。
创建工作流
在解决方案资源管理器中右键单击“NumberGuessWorkflowActivities”,并依次选择“添加”、“新建项目”。
在“已安装”、“常用项”节点中,选择“工作流”。 从“工作流”列表中选择“活动”。
在“名称”框中键入
SequentialNumberGuessWorkflow
,然后单击“确定”。从“工具箱”的“控制流”部分,将一个“Sequence”活动拖放到工作流设计图面上的“在此处放置活动”标签上。
创建工作流变量和自变量
如果设计器中尚未显示“SequentialNumberGuessWorkflow.xaml”工作流,请在解决方案资源管理器中双击该工作流,使其显示在设计器中。
单击工作流设计器左下方的“参数”,以显示“参数”窗格。
单击“创建参数”。
在“名称”框中键入
MaxNumber
,从“方向”下拉列表中选择“输入”,从“参数类型”下拉列表中选择“Int32”,然后按 Enter 保存参数。单击“创建参数”。
在新添加的
MaxNumber
参数下方的“名称”框中键入Turns
,从“方向”下拉列表中选择“向外”,再从“参数类型”下拉列表中选择“Int32”,然后按 Enter。单击活动设计器左下角的“参数”,关闭“参数”窗格。
单击工作流设计器左下方的“变量”,以显示“变量”窗格。
单击“创建变量”。
提示
如果未显示“创建变量”框,请单击工作流设计器图面上的“Sequence”活动以将其选中。
在“名称”框中键入
Guess
,从“变量类型”下拉列表中选择“Int32”,然后按 Enter 保存该变量。单击“创建变量”。
在“名称”框中键入
Target
,从“变量类型”下拉列表中选择“Int32”,然后按 Enter 保存该变量。单击活动设计器左下角的“变量”,关闭“变量”窗格。
添加工作流活动
从“工具箱”的“基元”部分,将一个“Assign”活动拖放到“Sequence”活动上。 在“到”框中键入
Target
,并在“输入 C# 表达式”或“输入 VB 表达式”框中键入以下表达式。New System.Random().Next(1, MaxNumber + 1)
new System.Random().Next(1, MaxNumber + 1)
提示
如果未显示“工具箱”窗口,请从“视图”菜单中选择“工具箱”。
从“工具箱”的“控制流”部分,将一个“DoWhile”活动拖放至工作流中“Assign”活动之下。
在“DoWhile”活动的“Condition”属性值框中,键入以下表达式。
Guess <> Target
Guess != Target
DoWhile 活动执行其子活动,然后计算其 Condition。 如果 Condition 的计算结果为
True
,则再次执行 DoWhile 中的活动。 在此示例中,将计算用户的猜测值,并且 DoWhile 继续执行,直到猜测值正确。从“工具箱”的“NumberGuessWorkflowActivities”部分,将一个“Prompt”活动拖放至上一步的“DoWhile”活动中。
在“Prompt”活动的“属性窗口”中的“BookmarkName”属性值框中键入
"EnterGuess"
(包括引号)。 在“Result”属性值框中键入Guess
,并在“Text”属性框中键入以下表达式。"Please enter a number between 1 and " & MaxNumber
"Please enter a number between 1 and " + MaxNumber
提示
如果未显示“属性”窗口,请从“视图”菜单中选择“属性窗口”。
从“工具箱”的“基元”部分,将一个“Assign”活动拖放到“DoWhile”活动中,“Prompt”活动之后。
注意
“Assign”活动时,注意观察工作流设计器如何自动添加“Sequence”活动,使之同时包含“Prompt”活动和新添加的“Assign”活动。
在“到”框中键入
Turns
,并将Turns + 1
键入“输入 C# 表达式”或“输入 VB 表达式”框中。从“工具箱”的“控制流”部分,将一个“If”活动放置到“Sequence”活动中,新添加的“Assign”活动之后。
将以下表达式键入“If”活动的“Condition”属性值框。
Guess <> Target
Guess != Target
从“工具箱”的“控制流”部分,再将一个“If”活动拖放到第一个“If”活动的“Then”部分中。
将以下表达式键入新添加的“If”活动的“Condition”属性值框中。
Guess < Target
从“工具箱”的“基元”部分拖放两个“WriteLine”活动,一个放在新添加“If”活动的“Then”部分,另一个放在“Else”部分。
单击“Then”部分中的“WriteLine”活动将其选中,然后将以下表达式键入“Text”属性值框中。
"Your guess is too low."
单击“Else”部分中的“WriteLine”活动将其选中,然后将以下表达式键入“Text”属性值框中。
"Your guess is too high."
下面的示例阐释已完成的工作流:
生成工作流
按 CTRL+SHIFT+B 生成解决方案。
有关如何运行工作流的说明,请参见下一主题,即如何:运行工作流。 如果已使用不同样式的工作流完成如何:运行工作流步骤,并希望使用此步骤中的顺序工作流来运行该工作流,请跳到如何:运行工作流的生成并运行应用程序部分。