在Pro WF 4.5这本教程中的第76页相关内容中有介绍如何通过wf设计器生成xaml定义的workflow,然后通过ActivityXamlServices.load的方式来执行。
但是书中貌似有一点遗漏了(不是是否是我没有注意到),就是当包含有C# 表达式的时候通过ActivityXamlServices.load执行workflow会报如下的错误:
后经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