系统和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