Windows Workflow Foundation (wwf) 学习笔记(二)
2007-01-18 17:40
375 查看
Windows Workflow Foundation (wwf) 学习笔记(二)
4、 Sequential Workflow With Parameters
Workflow的流程是可以带参数的,这样,流程代码可以根据外界参数的值来对后面执行情况进行选择判断。
在本例用选中SequentialWorkflow对象,可以看到该对象有Parameters属性,点击该属性,探出如下图窗体:
![](http://www.cnblogs.com/images/cnblogs_com/andersen/image010.jpg)
这里可以定义多个Parameter对象,包括对象的Name、Type等属性,Direction用于表明该参数是输入参数还是输出参数。本例中定义了amount输入参数,和status输出参数。
本例流程如图,
![](http://www.cnblogs.com/images/cnblogs_com/andersen/image012.jpg)
ifElseBranch1的Condition属性的执行方法如下:
[align=left] private bool IsApproved(object sender, EventArgs e)[/align]
[align=left] {[/align]
[align=left] if (Convert.ToInt32(this.Parameters["amount"].Value) < 500)[/align]
[align=left] return true;[/align]
[align=left] else[/align]
[align=left] return false;[/align]
}
这里是根据外界传递来的参数amount的值判断ifElse最终选择的路径的。
在Code1中:
[align=left]private void Approved(object sender, EventArgs e)[/align]
[align=left]{[/align]
[align=left] this.Parameters["status"].Value = "approved";[/align]
}
在Code2中:
[align=left]private void Rejected(object sender, EventArgs e)[/align]
[align=left]{[/align]
[align=left] this.Parameters["status"].Value = "rejected";[/align]
}
Code1和Code2分别给出了2种路径的输出参数值。
在看看Program.cs中是怎样调用这个带参数的工作流的
[align=left]Dictionary<string, object> parameters = new Dictionary<string, object>();[/align]
[align=left]parameters.Add("amount", Convert.ToInt32(args[0]));[/align]
[align=left] [/align]
[align=left]// Load the workflow type[/align]
[align=left]Type type = typeof(SequentialWorkflowWithParameters);[/align]
[align=left] [/align]
[align=left]// Create and start an instance of the workflow[/align]
workflowRuntime.StartWorkflow(type, parameters);
在工作流结束的事件中,通过OutputParameters属性,拿到了输出参数status的值。
[align=left]static void OnWorkflowCompleted(object sender, WorkflowCompletedEventArgs workflowCompletedEventArgs)[/align]
[align=left]{[/align]
[align=left] //The order status is stored in the "status" "in" parameter[/align]
[align=left] string orderStatus = workflowCompletedEventArgs.OutputParameters["status"].ToString();[/align]
[align=left] Console.WriteLine("Order was " + orderStatus);[/align]
[align=left] waitHandle.Set();[/align]
}
posted on 2006-05-08 15:07 安徒生的童话 阅读(1152) 评论(2) 编辑 收藏 引用 网摘
![](http://www.cnblogs.com/andersen/aggbug/393983.html?webview=1)
评论
Posted @ 2006-05-08 16:16
顶,我手上的工作也正需要研究这一块,一起讨论。
徐汇
re: Windows Workflow Foundation (wwf) 学习笔记(二)
Posted @ 2006-05-09 15:18
兄弟加入WinFX团队呀,一起研究WinFX
# re: Windows Workflow Foundation (wwf) 学习笔记(二)
4、 Sequential Workflow With Parameters
Workflow的流程是可以带参数的,这样,流程代码可以根据外界参数的值来对后面执行情况进行选择判断。
在本例用选中SequentialWorkflow对象,可以看到该对象有Parameters属性,点击该属性,探出如下图窗体:
![](http://www.cnblogs.com/images/cnblogs_com/andersen/image010.jpg)
这里可以定义多个Parameter对象,包括对象的Name、Type等属性,Direction用于表明该参数是输入参数还是输出参数。本例中定义了amount输入参数,和status输出参数。
本例流程如图,
![](http://www.cnblogs.com/images/cnblogs_com/andersen/image012.jpg)
ifElseBranch1的Condition属性的执行方法如下:
[align=left] private bool IsApproved(object sender, EventArgs e)[/align]
[align=left] {[/align]
[align=left] if (Convert.ToInt32(this.Parameters["amount"].Value) < 500)[/align]
[align=left] return true;[/align]
[align=left] else[/align]
[align=left] return false;[/align]
}
这里是根据外界传递来的参数amount的值判断ifElse最终选择的路径的。
在Code1中:
[align=left]private void Approved(object sender, EventArgs e)[/align]
[align=left]{[/align]
[align=left] this.Parameters["status"].Value = "approved";[/align]
}
在Code2中:
[align=left]private void Rejected(object sender, EventArgs e)[/align]
[align=left]{[/align]
[align=left] this.Parameters["status"].Value = "rejected";[/align]
}
Code1和Code2分别给出了2种路径的输出参数值。
在看看Program.cs中是怎样调用这个带参数的工作流的
[align=left]Dictionary<string, object> parameters = new Dictionary<string, object>();[/align]
[align=left]parameters.Add("amount", Convert.ToInt32(args[0]));[/align]
[align=left] [/align]
[align=left]// Load the workflow type[/align]
[align=left]Type type = typeof(SequentialWorkflowWithParameters);[/align]
[align=left] [/align]
[align=left]// Create and start an instance of the workflow[/align]
workflowRuntime.StartWorkflow(type, parameters);
在工作流结束的事件中,通过OutputParameters属性,拿到了输出参数status的值。
[align=left]static void OnWorkflowCompleted(object sender, WorkflowCompletedEventArgs workflowCompletedEventArgs)[/align]
[align=left]{[/align]
[align=left] //The order status is stored in the "status" "in" parameter[/align]
[align=left] string orderStatus = workflowCompletedEventArgs.OutputParameters["status"].ToString();[/align]
[align=left] Console.WriteLine("Order was " + orderStatus);[/align]
[align=left] waitHandle.Set();[/align]
}
posted on 2006-05-08 15:07 安徒生的童话 阅读(1152) 评论(2) 编辑 收藏 引用 网摘
评论
Posted @ 2006-05-08 16:16
顶,我手上的工作也正需要研究这一块,一起讨论。
徐汇
re: Windows Workflow Foundation (wwf) 学习笔记(二)
Posted @ 2006-05-09 15:18
兄弟加入WinFX团队呀,一起研究WinFX
# re: Windows Workflow Foundation (wwf) 学习笔记(二)
相关文章推荐
- Windows Workflow Foundation (wwf) 学习笔记(一)
- Windows Workflow Foundation (wwf) 学习笔记(一)
- Windows Workflow Foundation (wwf) 学习笔记(一)
- Windows Workflow Foundation (wwf) 在宿主中使用参数与实例通信 --学习笔记(二)
- Windows Workflow Foundation (wwf) 学习笔记(二)
- windows workflow foundation(WWF)学习记录
- Windows Workflow Foundation(WWF)的学习资源-101
- Window Workflow Foundation 学习笔记(入门)
- Windows Workflow Foundation(WWF)介绍
- Windows Workflow Foundation(WWF)介绍
- WF (Windows Workflow Foundation) 工作流学习(二)一个Asp.Net 与 顺序工作流 结合的例子
- WWF(Windows Workflow Foundation)的简介[翻译]
- Kilxy的WF(Windows Workflow Foundation)学习手记一
- Kilxy的WF(Windows Workflow Foundation)学习手记(一)
- Windows Workflow Foundation 学习资料汇总
- 转载:Kilxy的WF(Windows Workflow Foundation)学习手记(一)
- 转载:Kilxy的WF(Windows Workflow Foundation)学习手记(一)
- WF(window Workflow Foundation)学习笔记(一)
- WWF(Windows Workflow Foundation)开发环境的建立
- 关于Windows Workflow Foundation的入门学习资料