第二个工作流实例--使用WorkflowInvoker向工作流传递参数

1:使用WorkflowInvoker向工作流传递参数

当宿主进程启动一个工作流时,传递一些自定义启动参数是很常见的情况,WorkflowInvoker的Invoke方法有很多重载,其中允许你向工作流传递启动参数,这些参数保存在一个Dictionary变量中,它包含的名称/值对可用来设置工作流中的同名(同类型)的参数变量
   2:使用工作流设计器定义参数
    可以使用工作流设计器来定义参数并获取字典数据。在解决方案中,右击Workflow1.xaml选择View Designer(视图设计器),注意在设计器底部有一个名为Arguments(参数)的按钮,单击该按钮,在弹出的UI中,添加一个string类型的输入参数Message (不需要为该类型指定默认值)。
第二个工作流实例--使用WorkflowInvoker向工作流传递参数
现在,在WriteLine活动的Text属性中,可以输入Message作为赋值表达式,当你输入字符时,可以看到智能感知
第二个工作流实例--使用WorkflowInvoker向工作流传递参数
现在我们有的基础设施,就可以对Main方法进行修改,注意文件中要引用System.Collections.Generic命名空间,来声明Dictionary<>变量。
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
第二个工作流实例--使用WorkflowInvoker向工作流传递参数
posted @ 2015-08-04 15:48  倾城风云  阅读(2938)  评论(0编辑  收藏  举报