关于Workflow Foundation的一些问题

时间:2009-07-04 17:28:39

标签: workflow-foundation

1)Code和Callexternalmethod有什么区别?

2)对于诸如延迟之类的结构,这可以用方法编码。在工作流程中而不是代码中执行它有什么好处?

3)我正在尝试编写工作流驱动的CMS。将根据枚举的状态(选定值)发布页面。要做到这一点,我需要工作流代码中的类型变量,我发现它变得凌乱。即使这样,我怎么能在IfElse块中说“If(revisionStatus = RevisionStatus.Publish)?”我在另一个项目中有一个网页对象,它在其构造函数中设置枚举。

由于

1 个答案:

答案 0 :(得分:1)

1)代码活动将方法存根放在与工作流相同的类中(工作流设计器的工作方式与Windows窗体设计器类似。如果单击项目中的“显示所有文件”,则可以看到工作流程自动生成设计师类。) CallExternalMethod调用另一个类中存在的方法。因此,您不需要将所有逻辑放在与工作流程相同的类中,您可以像通常那样将它传播到其他类中。

2)我想如果它是你的应用程序行为的重要部分,那么很高兴在工作流程中看到它(这样你就可以很好地直观地了解正在发生的事情)。此外,通过工作流延迟活动,您的工作流程将标记为空闲。因此,如果您正在使用持久性服务,那么工作流程会在此时保持automcaticllay持久化。您还可以从工作流程外部获取WorkFlow OnIdle事件。我不知道这是否适用于通过代码延迟。

3)不确定我是否正确理解了这个。如果您将某些内容传递给工作流,则需要使用属性/字段将其绑定到,但类型定义不必位于同一个类/程序集中。只要工作流程中的项目可以参考你所生活的那个人,你应该没事 单击if else分支,选择属性。单击“条件”框,将其更改为“声明性规则条件*”。给你的条件命名,在表达式框中输入你通常在代码中的If语句。