从字符串运行时更改工作流IF条件

时间:2011-11-11 13:12:51

标签: linq workflow-foundation-4

我希望能够更改WF4 Workflow If-Activtity运行时的条件语句,其中输入来自某种用户界面作为字符串。我已经阅读了如何change a Workflow dynamically,或者如何创建Activites from code - 当我到了将Condition-property分配给If-activity类时,问题就来了。我的来源是一个字符串。 The constructor不接受字符串。

我必须先将字符串转换为Expression<bool>吗?我该怎么做?

I want to expose this condition string to the user directly, and have code altering the workflow accordingly

这是我要公开的字符串

注意:我意识到可能有其他方法可以实现我想要的,例如:(1)创建改变工作流的XAML而不是对象的代码,或(2)将整个Workflow编辑器暴露给最终用户。在我走这条路之前,我想知道是否有可能按照我的方式去做。

1 个答案:

答案 0 :(得分:2)

您可以使用类似

的表达式
new VisualBasicValue<bool>("Person.Gender = \"Male\"")

警告:您指向的将工作流程更改应用于工作流 WF3 无关,并且 WF4 < / strong>无论如何。使用WF4,无法动态更改正在运行的工作流实例。该功能将在.NET 4.5框架中添加。