WorkFlow(2)--让WF通过参数接收数据
来源:互联网 发布:拆分复利源码 编辑:程序博客网 时间:2024/05/18 03:33
在这一节,我们一起学习通过其他程序调用工作流,并且在工作流启动时给工作流传递一些数据,使其在工作流中使用。
在workflow开始执行时,我们有两种方式给工作流传递数据------参数和事件。今天,我们先说说怎样通过参数来给工作流传递数据。
需要传递给workflow的参数,我们需要先在工作流中通过属性来进行设置,而后在其他程序调用这个工作流创建一个工作流的实例时,通过 Dictionary<string, object>键值集合进行传递,如下:
继续使用我们上一节用到的代码,给Workflow1 类添加两个属性FirstName和LastName
public string FirstName
{
get
{
return firstName;
}
set
{
firstName = value;
}
}
private string lastName;
public string LastName
{
get
{
return lastName;
}
set
{
lastName = value;
}
}
这里我们将通过其他应用程序传递fristName和lastName并让这两个值在工作流执行过程中以对话框的形式显示出来。
因为我们上一节中创建的是个控制台应用程序,所以让起弹出对话框需要应用System.Windows.Forms程序集。
然后修改我们的Workflow1类中的codeActivity1_CodeHandler
{
System.Windows.Forms.MessageBox.Show(
"Hello world: " + firstName + " " + lastName);
}
现在我们已经修改好我们要做的工作流代码了。
下面我们要创建一个winForm应用程序。
添加一个新的项目WinFormTestHost。
接下来我们要确认我们新创建的项目WinFormTestHost能够调用工作流Workflow1。
给WinFormTestHost添加引用,引用项目HelloWorldWorkflow.
同时,我们还要让我们的这个winfrom应用程序引用wwf程序集。继续添加引用,选择.net选项卡,添加如下三项:
System.Workflow.Activities
System.Workflow.ComponentModel
System.Workflow.Runtime
修改我们的Form1窗体。
添加两个Label分别为Label1和Label2,Text属性分别为First name和 LastName。
添加两个TextBox分别为txtFirstName和txtLastName。
添加一个按钮btnStartWorkflow,用来启动我们的工作流,Name属性为btnStartWorkflow,Text属性为Start Workflow。
这个简单的窗体就做完了,我们来添加代码。
首先在我们的类Form1.cs中添加工作流运行时声明:
双击btnStartWorkflow添加事件处理程序。
{
if (wr == null)
{
wr = new WorkflowRuntime();
wr.StartRuntime();
}
//定义键和值的集合(Dictionary)用来传递参数
Dictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("FirstName", txtFirstName.Text);
parameters.Add("LastName", txtLastName.Text);
//创建一个工作流实例
WorkflowInstance instance = wr.CreateWorkflow(typeof(HelloWorldWorkflow.Workflow1), parameters);
//启动工作流
instance.Start();
}
最后给FormClosed事件添加一段代码,使其在关闭窗体时关闭工作流
{
if (wr != null)
{
if (wr.IsStarted)
{
wr.StopRuntime();
}
}
}
现在,我们的程序就开发完成了,点击F5,将打开窗体:
我们输入名称后点Start Workflow,将弹出窗体:
这个窗体是在Workflow1中执行的,同时,我们也看到,在winfrom窗体中输入的值成功的传递到了工作流中。
<转自>http://www.cnblogs.com/zhuhee/archive/2007/01/20/625710.html
- WorkFlow(2)--让WF通过参数接收数据
- 和我一起学Windows Workflow Foundation(2)-----让WF通过参数接收数据
- WF工作流技术内幕 —— 通过Web服务调用Workflow工作流(基础实例)
- struts 接收参数(通过model接收)
- WF工作流技术内幕 —— 通过Web服务调用Workflow工作流(开发持久化工作流)
- 初识WF(Workflow Foundation)
- Windows Workflow Foundation (WF)
- WF从入门到精通(第三章):workflow实例
- WF从入门到精通(第五章):workflow跟踪
- WF从入门到精通(第三章):workflow实例
- WF从入门到精通(第五章):workflow跟踪
- 【翻译】WorkFlow从入门到精通(第一章):WF简介
- Kilxy的WF(Windows Workflow Foundation)学习手记(一)
- WF(Workflow foundation)与Asp.net结合(二)
- WF工作流技术内幕 —— 通过Web服务调用Workflow工作流
- WF工作流技术内幕 —— 通过Web服务调用Workflow工作流
- Controller通过@RequestBody接收参数
- CXF学习笔记---让通过参数传递数据
- 关于const,static,extern,volatile的用法
- 编写安全的代码--学习笔记(1)
- 开始→运行→输入的命令集锦
- 三层结构下多数据库大量用户访问怎么处理?
- C/C++中全局变量和全局文件的访问作用域
- WorkFlow(2)--让WF通过参数接收数据
- 浅谈语音信号处理系列之一 概述
- UltraGrid 绑定对象的注意事项
- 全能学生本 华硕N81报价骤降
- oracle Job 二
- 公司网线的接法
- 关于内存分配的一些问题
- 代理模式
- Windows Workflow Foundation(1)-----创建和调试一个WF实例