1:使用WorkflowInvoker向工作流传递参数
当宿主进程启动一个工作流时,传递一些自定义启动参数是很常见的情况,WorkflowInvoker的Invoke方法有很多重载,其中允许你向工作流传递启动参数,这些参数保存在一个Dictionary变量中,它包含的名称/值对可用来设置工作流中的同名(同类型)的参数变量
2:使用工作流设计器定义参数
可以使用工作流设计器来定义参数并获取字典数据。在解决方案中,右击Workflow1.xaml选择View Designer(视图设计器),注意在设计器底部有一个名为Arguments(参数)的按钮,单击该按钮,在弹出的UI中,添加一个string类型的输入参数Message (不需要为该类型指定默认值)。
static void Main(string[] args)
{
string wfData = Console.ReadLine();
//这里用Dictionary类型,因为Invoke重载接受这种键值对的类型
Dictionary wfArgs = new Dictionary();
//使用键值对,键为我们刚才加的参数名称,将数据存入到字典中
wfArgs.Add("Message",wfData);
//传递给工作流
WorkflowInvoker.Invoke(new Workflow1(),wfArgs);
}
注意:Dictionary<>变量中的每个成员键必须与工作流中相应的参数变量名一致,运行程序,我们像频幕输入123,工作流输出123