技术开发 频道

Windows工作流基类库(WF)探密



六、编写代码动作程序

   
得到一个简单的工作流,并运行它的最容易的方法就是使用代码动作。下面将演示如何使用一个单独的代码动作来实现一个简单的工作流,并演示了如何使用工作流设计器和工作流工具箱。
   
下面再在解决方案浏览器上,双击WorkFlow1图表来演示设计器。从Visual Studio工具箱中,拖动代码动作,并将它们放到序列工作流图上,如图6所示。我们将看到一个红色的感叹号错误标记(在代码动作的右上角)。如果我们单击这个标记,就会显示错误信息:“Property "ExecuteCode" is not set.意思是说,我们还没有输入用于执行的代码动作。这是Windows工作流的一个非常重要的特性,用来提示开发人员应该按着步骤来输入相应的代码,来对动作进行完善(一般是设置一个属性,或是建立一个事件处理方法)。



图6 错误标记。表示还没有输入相应的动作代码。
 
为了使这个代码动作完整,并消除这个错误,双击图中的动作来建立一个事件处理函数。然后加入如下的处理代码。在本例子中,只是简单地向控制台写入一个字符串:
   // C#
private void codeActivity1_ExecuteCode(object sender, EventArgs e) { Console.WriteLine("Hello WF World!"); }


' Visual Basic Private Sub codeActivity1_ExecuteCode(ByVal sender As System.Object, ByVal e As System.EventArgs) Console.WriteLine("Hello WF World!") End Sub

现在我们已经建立了一个工作流应用程序,并且拥有了一个动作,下面我们准备运行它。

七、运行我们的工作流程序
在运行程序之前,我们可以在main函数里设置断点来观察工作流本身的运行情况以及其他的细节部分。
在C#中打开Program.cs或在Visual Basic中打开Module.vb,并且在Main()方法中的表达式中设置一个断点。
    按F5来运行这个工作流程序,然后按F10一步一步地跟踪Main()方法中的每一行程序。当我们按步骤跟踪代码时,要注意这些关键的动作在该方法中的执行情况。下面是程序各部分运行的步骤:
1. 首先,WF运行时被实例化。这个会最先发生,这是因为WF使用运行时来实例化,、执行以及管理我们的工作流。
2. 动作的处理方法当工作流的运行时的WorkflowCompleted 和 WorkflowTerminated事件发生时被注册。这将允许当一个工作完成或中途退出时通知工作流应用程序。
3. 工作流被实例化。要注意的是应用程序并没有直接实例化工作流,而是通过调用工作流运行时的CreateWorkflow()方法来实例化工作流的。

4. 最后,这个方法调用了工作流的Start()方法,这个方法开始执行工作流的动作代码。
    当工作流完成时,我们将会看到如图7所示的一个控制台窗口,在其中显示“Hello WF World!”。按任意键后,这个控制台窗口将关闭,然后按F5将退出这个工作流应用程序。

工作流应用程序执行后的界面。在这个界面中显示了动作代码执行后的输出信息“Hello WF World

0
相关文章