workflow学习笔记

前段时间需要在一个项目中用到工作流,因为以前从来没有接触过,所以没办法,学吧!

首先说明一下,写这个系列的文章只是为了当自己的学习笔记所用,因为是新手,所以错误在所难免。如果有什么不对,还请各位大牛不要拍砖。

工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。

今天我们的目标:

1.创建一个顺序工作流控制台应用程序。

2.工作流中最简单的数据传递(宿主应用程序传递到工作流)

3.使用workflow进行编程

我们以最简单的一个判断输入是否合法程序来做演示。创建一个顺序工作流控制台应用程序

1.打开visual studio 2008。

2.新建一个顺序工作流控制台应用程序。

 

3.输入名称之后点击确定会出现以下界面

 

4.因为我们要做判断,所以我们在工具箱中找到IfElse。将它拖入到我们的设计界面上。

5.可以看到上图很明显的一个红色感叹号。显示“未设置属性"Condition"”。那么我们单击他,转到属性窗口。

6.如上图所示,选择Condition下拉列表中的代码条件,再输入处理事件的名称。VS会自动的生成处理代码。

7.现在我们需要将我们的workflow赋予一种从宿主应用程序获得参数的能力。我们通过Get/Set来实现。

 

private string str;

public string Str
{
   
get return str; }
   
set { str = value; }
}

 

8.现在我们来编写处理代码。在我们刚才的Isok的事件处理程序中输入以下代码。来作为我们判断是否合法的标准。

 

if (Str == "admin")
            
{
                e.Result 
= true;
            }

            
else
            
{
                e.Result 
= false;
            }

 

9."e.Result"是代码条件判断的标准。假如为true,那么workflow将从左边分支运行。反之。我们刚才只是创建了IfElse,并没有创建分支的处理程序。现在我们返回设计界面。向左右的分支拖入Code控件。

10.仍然让我们设置执行代码。点击设置。VS仍然会自动生成事件处理程序。我们在左边分支的处理代码中插入以下代码

 

Console.WriteLine("It's Ok!!!");

 

在右边分支的处理代码中插入以下代码

 

Console.WriteLine("It's Not Ok!!!");

 

 至此。我们的workflow代码编写完毕。现在我们需要稍稍的修改下我们的Program.cs文件。打开Program.cs文件。找到

WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof...

在其上面插入以下代码用作传递参数到workflow中。

 

Console.WriteLine("enter a word:");
string str = Console.ReadLine();

Dictionary
<stringobject> dic = new Dictionary<stringobject>();
dic.Add(
"Str", str);

 

修改刚才那句代码为:

 

WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(WorkflowTest1.Workflow1),dic);

 

现在编译执行我们的代码。

输入"admin"后我们将看到以下结果

如果输入的非"admin"的话。

至此。我们的第一个workflow程序就完成了。是不是感觉很简单?

注:本人是web安全爱好者,希望各位对这方面有兴趣的朋友多多联系。E-mail:alert007(at)qq.com

 

posted @ 2009-01-19 23:06  4lert  阅读(2370)  评论(6编辑  收藏  举报