workflow学习笔记
前段时间需要在一个项目中用到工作流,因为以前从来没有接触过,所以没办法,学吧!
首先说明一下,写这个系列的文章只是为了当自己的学习笔记所用,因为是新手,所以错误在所难免。如果有什么不对,还请各位大牛不要拍砖。
工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。
今天我们的目标:
1.创建一个顺序工作流控制台应用程序。
2.工作流中最简单的数据传递(宿主应用程序传递到工作流)
3.使用workflow进行编程
我们以最简单的一个判断输入是否合法程序来做演示。创建一个顺序工作流控制台应用程序
1.打开visual studio 2008。
2.新建一个顺序工作流控制台应用程序。
3.输入名称之后点击确定会出现以下界面
4.因为我们要做判断,所以我们在工具箱中找到IfElse。将它拖入到我们的设计界面上。
5.可以看到上图很明显的一个红色感叹号。显示“未设置属性"Condition"”。那么我们单击他,转到属性窗口。
6.如上图所示,选择Condition下拉列表中的代码条件,再输入处理事件的名称。VS会自动的生成处理代码。
7.现在我们需要将我们的workflow赋予一种从宿主应用程序获得参数的能力。我们通过Get/Set来实现。
public string Str
{
get { return str; }
set { str = value; }
}
8.现在我们来编写处理代码。在我们刚才的Isok的事件处理程序中输入以下代码。来作为我们判断是否合法的标准。
{
e.Result = true;
}
else
{
e.Result = false;
}
9."e.Result"是代码条件判断的标准。假如为true,那么workflow将从左边分支运行。反之。我们刚才只是创建了IfElse,并没有创建分支的处理程序。现在我们返回设计界面。向左右的分支拖入Code控件。
10.仍然让我们设置执行代码。点击设置。VS仍然会自动生成事件处理程序。我们在左边分支的处理代码中插入以下代码
在右边分支的处理代码中插入以下代码
至此。我们的workflow代码编写完毕。现在我们需要稍稍的修改下我们的Program.cs文件。打开Program.cs文件。找到
WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof...
在其上面插入以下代码用作传递参数到workflow中。
string str = Console.ReadLine();
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("Str", str);
修改刚才那句代码为:
现在编译执行我们的代码。
输入"admin"后我们将看到以下结果
如果输入的非"admin"的话。
至此。我们的第一个workflow程序就完成了。是不是感觉很简单?
注:本人是web安全爱好者,希望各位对这方面有兴趣的朋友多多联系。E-mail:alert007(at)qq.com