2

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

+0

您将不得不澄清这一点。 – Will 2011-04-17 01:11:42

+0

意愿进一步澄清;我正在寻找的是开发工作流程,这些工作流程非常细致,由开发人员开发。这些将被其他用户用作组件。它就像由开发人员开发的定制类库,每个其他开发人员都可以利用它... – 2011-04-18 15:24:58

回答

1

我相信我理解你的目标,但它不像你认为的那样容易。第一个本能是为你的解决方案添加一个Activity(Add => New Item => Workflow => Actvity),并将其他活动拖放到设计图面上。

这将创建可重用的工作流程,但不幸的是他们不会有任何与其关联的设计器。所以,当其他用户试图从工具箱拖动这些工作流,并在不同的解决方案中使用它们的工作流程,他们会得到这样的事情:

designer fail

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

*您可能还必须扩展活动才能使其显示在工具箱中;对此我不确定。将活动视为一个实际上从未使用的虚拟模型。