我正在开发子工作流的类库;我有一组用于创建子工作流的活动。我希望将这些子工作流开发为可重用的工作流,以便在创建实际工作流时使用。我主要是实现现有工作流的类库,其他人可以使用它来创建实际的业务工作流。我想要的是,当用户创建一个子工作流时,它应该自动添加到工作流的类库中,并编译,并在运行时作为可重用组件可用。
发布于 2011-04-18 23:36:38
我相信我理解你的目标,但这并不像你想象的那么容易。
第一个本能是向您的解决方案中添加一个活动(Add => Item => Workflow => Activity ),然后将其他活动拖到设计图面上。
这将创建可重用的工作流,不幸的是,它们不会有任何关联的设计器。因此,当另一个用户尝试从工具箱中拖动这些工作流并在不同解决方案的工作流中使用它们时,他们将得到类似以下内容:

这并不是很有用。另一种方法是创建实现IActivityTemplateFactory的自定义活动。此类型(我相信*)可以添加到工具箱中。将它们拖到设计图面上时,将调用Create方法。在此方法中,您可以构造所需的任何工作流并返回它。此活动树将添加到工作流中,以便其中的所有活动都可见。
*您可能还必须扩展Activity才能在工具箱中显示它;我不确定这一点。把这个活动想象成一个虚拟的,实际上从来没有被使用过。
发布于 2011-04-30 02:17:40
这也可能是有用的
http://blogs.msdn.com/b/mwinkle/archive/2009/12/24/swiss-cheese-and-wf4-or-an-introduction-to-activityaction.aspx
WF3的客户经常要求的一个常见场景是具有模板或“灰色盒子”或“有洞的活动”的能力(因此上面的瑞士奶酪照片)。在WF4中,我们以一种称为ActivityAction
的方式实现了这一点
https://stackoverflow.com/questions/5690683
复制相似问题