将XAML工作流嵌入到另一个XAML工作流中

时间:2012-08-18 18:18:21

标签: workflow-foundation-4 workflowservice

我们的情况是有两个XAML工作流程(WF1和WF2)。 WF1是WF2的超集。因此,当WF2独立于系统内的WF1执行时,我们希望WF1在WF1执行时在WF1的范围内执行。基本上在WF1结束时有一个书签,在恢复WF2必须执行的书签时。

它们都在共享资源上运行,我们不能在共享资源上同时运行这些WF的不同实例。我们有一个排队机制来处理这个问题。

我想做的是在设计时以某种方式在WF1中构建此执行。因此,可能编写一个活动来加载WF2或以某种方式将WF2转换为编码活动并将其放入WF1等。我不想要的是必须复制WF2并将其放入WF1设计器中。此外,我们不希望在WF1中启动单独的主机进程来执行WF2。

基本上我们的WF1和WF2都在WorkflowServiceHost下运行。它们不是传统的服务WF(因此没有发送/接收活动),而是作为WCF服务公开的普通WF。我们的WorkflowServiceHost中有很多关于其持久性,跟踪等的定制,我们的WF都受益于这些定制。我想确保无论我们采取何种机制在WF1内推出WF2,我们都不会失去这些好处。

PS:如果您想了解我们如何自定义这些WF的运行,您可以从我的博客here下载示例代码

1 个答案:

答案 0 :(得分:3)

从技术上讲,工作流程只是一项活动。因此,如果您使用WF1和WF2编译项目并打开WF1,您将在活动工具箱中看到WF2。只需将它拖到WF1上,连接任何参数就可以了。你好了。