如何:创建工作流

本主题适用于 Windows Workflow Foundation 4。

工作流可基于内置活动以及自定义活动来构造。本主题分步介绍如何创建使用内置活动(如 Flowchart 活动)以及之前的如何:创建活动主题中的自定义活动的工作流。该工作流模拟猜数游戏。

Dd489437.note(zh-cn,VS.100).gif注意:
入门教程中的每个主题都依赖于前面的主题。若要完成本主题,必须先完成如何:创建活动

创建工作流项目

  1. 使用 Visual Studio 2010 打开之前的如何:创建活动主题中的解决方案。

  2. 在**“解决方案资源管理器”中右击“GettingStartedTutorial”解决方案,然后依次选择“添加”“新建项”**。

    Dd489437.Tip(zh-cn,VS.100).gif提示:
    如果未显示“解决方案资源管理器”窗口,请从“视图”菜单选择“解决方案资源管理器

  3. 在**“已安装模板”列表中,依次选择“Visual C#”“工作流”(或依次选择“Visual Basic”“工作流”**)。

    Dd489437.note(zh-cn,VS.100).gif注意:
    根据在 Visual Studio 中配置为主要语言的编程语言的不同,“Visual C#”“Visual Basic”节点可能位于“安装模板”列表下的“其他语言”节点中。

    请确保在 .NET Framework 版本下拉列表中选择**“.NET Framework 4”。从“工作流”列表中选择“工作流控制台应用程序”。保留默认设置并单击“确定”**。这将创建适合初学者的工作流应用程序,它具备基本的工作流承载支持。在本主题中,使用活动来填充工作流。在下一主题如何:运行工作流中,将要修改基本宿主代码并使用该代码来运行工作流应用程序。

  4. 在**“解决方案资源管理器”中右击新添加的“WorkflowConsoleApplication1”,然后选择“添加引用”。从“项目”选项卡中选择“ActivityLibrary1”,然后单击“确定”**。

  5. 按 F6 键生成解决方案。这会将**“ActivityLibrary1”中的自定义活动添加到“工具箱”**中,以便可供此工作流使用。

创建工作流变量和参数

  1. 如果设计器中尚未显示**“Workflow1.xaml”工作流,请在“解决方案资源管理器”**中双击该工作流,使其显示在设计器中。

  2. 将**“Flowchart”活动从“工具箱”“流程图”**部分拖放到工作流设计图面。

  3. 单击工作流设计器左下方的**“参数”,以显示“参数”**窗格。

  4. 单击**“创建参数”**。

  5. 在**“名称”框中键入 MaxNumber,从“方向”下拉列表中选择“输入”,再从“参数类型”下拉列表中选择“Int32”**,然后按 Enter 保存该参数。

  6. 单击**“创建参数”**。

  7. 在新添加的 MaxNumber 参数下方的**“名称”框中键入 Turns,从“方向”下拉列表中选择“输出”,再从“参数类型”下拉列表中选择“Int32”**,然后按 Enter。

  8. 单击活动设计器左下方的**“参数”,以关闭“参数”**窗格。

  9. 单击工作流设计器左下方的**“变量”,以显示“变量”**窗格。

  10. 单击**“创建变量”**。

    Dd489437.Tip(zh-cn,VS.100).gif提示:
    如果未显示“创建变量”框,请单击工作流设计器图面上的 Flowchart 活动以选择相应工作流。

  11. 在**“名称”框中键入 Guess,从“变量类型”下拉列表中选择“Int32”**,然后按 Enter 保存该变量。

  12. 单击**“创建变量”**。

  13. 在**“名称”框中键入 Target,从“变量类型”下拉列表中选择“Int32”**,然后按 Enter 保存该变量。

  14. 单击活动设计器左下方的**“变量”,以关闭“变量”**窗格。

添加工作流活动

  1. 将**“Assign”活动从“工具箱”“基元”部分拖放至工作流,使其位于开始节点之下,开始节点以绿色圆圈表示,位于工作流的顶部。在“到”框中键入 Target,并在“输入 VB 表达式”**框中键入以下表达式。

    New System.Random().Next(1, MaxNumber + 1)
    
    Dd489437.Tip(zh-cn,VS.100).gif提示:
    如果“工具箱”窗口未显示,请从“视图”菜单中选择“工具箱”

  2. 若要指示**“Assign”活动是 Flowchart 的起始点,请将鼠标悬停在工作流顶部的开始节点上。单击鼠标悬停在开始节点上时出现的矩形之一,并将鼠标向下拖至“Assign”活动的顶部。鼠标悬停在“Assign”活动上时,会出现四个矩形。拖动鼠标,使连接线从开始节点的底部连接至“Assign”**活动的顶部矩形,然后松开鼠标按钮。

  3. 将**“Prompt”活动从“工具箱”“ActivityLibrary1”部分拖放至上一步中的“Assign”**活动下。

  4. 在**“属性窗口”中,将包括引号在内的 "EnterGuess" 键入“BookmarkName”属性值框中。在“Result”属性值框中键入 Guess,并在“Text”**属性框中键入以下表达式。

    "Please enter a number between 1 and " & MaxNumber
    
    Dd489437.Tip(zh-cn,VS.100).gif提示:
    如果“属性窗口”未显示,请从“视图”菜单中选择“属性窗口”

  5. 将**“Assign”活动连接到“Prompt”活动。为此,请将鼠标悬停在“Assign”活动上,并单击鼠标悬停在该活动上时出现的位于底部的矩形。将鼠标向下拖至“Prompt”活动的顶部。鼠标悬停在“Prompt”活动上时,会出现四个矩形。拖动鼠标,使连接线从“Assign”活动的底部连接至“Prompt”**活动的顶部矩形,然后松开鼠标按钮。

  6. 将**“Assign”活动从“工具箱”“基元”部分拖放至“Prompt”**活动下。

  7. 在**“到”框中键入 Turns,并在“输入 VB 表达式”**框中键入 Turns + 1

  8. 按照前述步骤将**“Prompt”活动连接到“Assign”**活动。

  9. 将**“FlowDecision”“工具箱”“流程图”部分拖放至“Assign”活动下。将“Assign”活动连接到“FlowDecision”活动,然后单击“FlowDecision”活动将其选中。在“属性窗口”中,在“Condition”**属性值框中键入以下表达式。

    Guess = Target
    
  10. 将另一个**“FlowDecision”活动从“工具箱”拖放到第一个活动下。通过从靠上“FlowDecision”活动中标记为“False”的矩形拖至第二个“FlowDecision”**活动的顶部矩形,将这两个活动连接起来。

    Dd489437.Tip(zh-cn,VS.100).gif提示:
    如果在“FlowDecision”上看不到“True”“False”标签,请将鼠标悬停在“FlowDecision”上。

  11. 单击第二个**“FlowDecision”活动将其选中。在“属性窗口”中,在“Condition”**属性值框中键入以下表达式。

    Guess < Target
    
  12. 将两个**“WriteLine”活动从“工具箱”“基元”部分并排拖放至两个“FlowDecision”活动下。将靠下“FlowDecision”活动的“True”操作连接到最左边的“WriteLine”活动,并将“False”操作连接到最右边的“WriteLine”**活动。

  13. 单击最左边的**“WriteLine”活动将其选中,然后在“属性窗口”“Text”**属性值框中键入以下表达式。

    "Your guess is too low."
    
  14. 将**“WriteLine”连接到上方的“Prompt”**活动的左侧。

  15. 单击最右边的**“WriteLine”活动将其选中,然后在“属性窗口”“Text”**属性值框中键入以下表达式。

    "Your guess is too high."
    
  16. 将**“WriteLine”活动连接到上方的“Prompt”**活动的右侧。

    下面的示例阐释已完成的工作流。

    Dd489437.937fc39a-cff4-487c-9fa3-35b0a7e06771(zh-cn,VS.100).gif

生成工作流

  1. 按 F6 键生成解决方案。

    有关如何运行工作流的说明,请参见下一主题如何:运行工作流

另请参见

任务

如何:创建活动
如何:运行工作流

参考

Flowchart
FlowDecision

其他资源

Windows Workflow Foundation 编程
设计工作流
入门教程