系统和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();
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;
}
}
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;
}
{
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());
}
{
Console.WriteLine("MyOutputParameter:{0}", e.OutputParameters["MyInputParameter"].ToString());
}
这样通过e.OutputParameters["MyInputParameter"].ToString()的方式就可以得到从workflow中的属性值。
示例代码下载:/Files/maplye/WF/wf_code1.rar