Windows Workflow Foundation传递参数(启动时传入参数)
当我们启运一个工作流时,怎样将初始参数传入到workflow中?Follow me…
我觉得在Microsoft中给出那个示例中已经足够说明问题了,下面的小程序只是把它重新给做了一遍,在程序中输入你的姓和名,然后跟你打招呼(Hello, XXX)
在VS2005中新建一个项目,选择visual C#, 点击顺序工作流控制台应用程序,项目名称随便吧,我这里定为SaidHello, OK, 一个Workflow项目就建立好了
1.双击workflow1.cs转到设计视图,在视图中右击,选择”查看代码”,在代码中加入以下代码:
private String xing;
public String Xing
{
get { return xing; }
set { xing = value; }
}
private String ming;
public String Ming
{
get { return ming; }
set { ming = value; }
}
这段代码为我们的workflow1类添加了Xing和Ming这两个属性,分别对应 ”姓” 和 “名”,这些代码应该是没有什么悬念的.
2.双击workflow1.cs回到设计模式,在工具栏里拖一个code activity过来,双击转到代码块中,加入以下代码:
Console.WriteLine("你好," + this.Xing + this.Ming);
以上的代码都很简单,跟我们之前做过的HelloWorkflow几乎没有什么区别!下面就是在启动workflow时怎样参数传过去,又击Program.cs
在 static void Main(string[] args)下加入(要在里面存在的代码的前面)
Console.WriteLine("你的姓:");
String xing = Console.ReadLine();
Console.WriteLine("你的名:");
String ming = Console.ReadLine();
Dictionary<String, object> par = new Dictionary<String, object>();
par.Add("Xing", xing);
par.Add("Ming", ming);
…..
WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(SaidHello.Workflow1),par);
instance.Start();//workflow启动
//这一句只要改动原语句就OK了,红色部分为添加部分
这里我们声明了一个Dictionary<String, object>类的实例par
par.Add("Xing", xing);
par.Add("Ming", ming);
注意,这个第一个String类型参数要和前面设置的属性相同,这样才能被传到
运行一下看一下效果:
这个程序仅仅在workflow启动时将参数传递进去,但在实际开发中是远远不够的,应该在workflow运行时传递参数,请看下回分解: (How to send date to workflow)