可重复使用的子工作流程?

时间:2011-04-17 00:46:12

标签: workflow workflow-foundation workflow-foundation-4 workflow-activity

我正在开发Sub工作流的类库;我有一组活动,用于创建Sub工作流程。我想将这些子工作流程开发为可重复使用的工作流程,我可以在创建实际工作流程时使用这些工作流程。我基本上实现了现有工作流的类库,其他人可以使用它来创建实际的业务工作流。我想要的是当用户创建一个Sub工作流时,应该自动将其添加到工作流的类库中并进行编译,并且应该在运行时作为可重用组件提供。

2 个答案:

答案 0 :(得分:1)

我相信我理解你的目标,但它并不像你认为的那样容易。

第一直觉是在您的解决方案中添加一个活动(Add => New Item => Workflow => Actvity),并将其他活动拖到设计图面上。

这将创建可重复使用的工作流程,遗憾的是,他们不会有任何与之关联的Designer。因此,当另一个用户尝试从工具箱中拖动这些工作流并在不同解决方案的工作流中使用它们时,他们会得到如下内容:

designer fail

这不是很有用。另一种方法是创建一个实现IActivityTemplateFactory的自定义Activity。这种类型(我相信*)可以添加到工具箱中。将它们拖到设计图面上时,会调用Create方法。在此方法中,您可以构建所需的任何工作流并将其返回。此活动树将添加到工作流中,以便其中的所有活动都可见。

*您可能还需要扩展Activity才能在工具箱中显示;对此我不确定。可以认为活动是一个从未使用过的假人。

答案 1 :(得分:0)

这可能也很有用

http://blogs.msdn.com/b/mwinkle/archive/2009/12/24/swiss-cheese-and-wf4-or-an-introduction-to-activityaction.aspx

  

经常出现一种常见情况   WF 3的客户要求的是   具有模板化或“灰色”的能力   框“或”有洞的活动“in   他们(因此瑞士奶酪照片   以上)。在WF4中,我们已经完成了这项工作   这种方式我们称之为ActivityAction