通过xaml来加载workflow

在Pro WF 4.5这本教程中的第76页相关内容中有介绍如何通过wf设计器生成xaml定义的workflow,然后通过ActivityXamlServices.load的方式来执行。

但是书中貌似有一点遗漏了(不是是否是我没有注意到),就是当包含有C# 表达式的时候通过ActivityXamlServices.load执行workflow会报如下的错误:

通过xaml来加载workflow_第1张图片

后经google得知

在此种情况下需要添加 CompileExpressions =true才行

具体的执行代码为:

            ActivityXamlServicesSettings setting = new ActivityXamlServicesSettings()
            {
                CompileExpressions = true
            };
            var act = ActivityXamlServices.Load(@"Workflow1.xaml", setting);
            var retArg = WorkflowInvoker.Invoke(act, new Dictionary
{
{ "argInA", 3 }, { "argInB", 5 }
});
            var result = Convert.ToInt32(retArg["argOutSum"]);


微软官方说明:http://msdn.microsoft.com/zh-cn/library/ff458319.aspx

你可能感兴趣的:(Workflow4.5)