系统和WorkFlow交互有很多种方式,今天介绍的是通过WorkFlow的parameter的方式,系统怎么讲数据传输给Workflow,
而Workflow怎么讲数据返回给系统。
实例如下:
大部分的操作和上篇建立Console Workflow Application相似,有几个不同的地方。
首先,创建WorkflowInstance
//
增加参数
Dictionary
<
string
,
object
>
parameters
=
new
Dictionary
<
string
,
object
>
();
parameters.Add(
"
MyInputParameter
"
,
42
);
//
使用参数parameters创建WorkflowInstance
WorkflowInstance instance
=
workflowRuntime.CreateWorkflow(
typeof
(WorkflowConsoleApplication3.Workflow1), parameters);
instance.Start();
然后,需要在workflow1.cs文件中增加MyInputParameter的属性
public
int
myInputParameter
=
0
;

public
int
MyInputParameter
{
get
{
return this.myInputParameter;
}
set
{
this.myInputParameter = value;
}
}
在workflow中的一些Activity中给这个属性赋值
private
void
codeActivity1_ExecuteCode(
object
sender, EventArgs e)
{
Console.WriteLine("Hello WorkFlow");
this.MyInputParameter = 100;
}
最后,我们看怎么得到workflow该数据返回到应用程序中
我们给Workflowruntime 增加一个Completed 事件,事件的代码如下:
static
void
workflowRuntime_WorkflowCompleted(
object
sender, WorkflowCompletedEventArgs e)
{
Console.WriteLine("MyOutputParameter:{0}",
e.OutputParameters["MyInputParameter"].ToString());
}
这样通过e.OutputParameters["MyInputParameter"].ToString()的方式就可以得到从workflow中的属性值。
示例代码下载:/Files/maplye/WF/wf_code1.rar
本文介绍如何通过参数传递数据至Workflow及从Workflow获取数据的方法。通过示例代码展示了设置输入参数、在Workflow内部修改这些参数以及如何将输出参数返回给调用系统的全过程。

被折叠的 条评论
为什么被折叠?



