Windows Workflow 4.0服务参考未在工具箱中显示

时间:2011-10-31 20:38:06

标签: windows workflow toolbox

我已经创建了一个简单的工作流服务应用程序(WF1),然后我在我的解决方案中添加了一个Windows窗体客户端,其中包含另一个工作流活动(WF2)。然后我添加了适当的服务引用到WF1。 当我尝试使用我的服务引用从WF2(Windows窗体)添加消息调用到WF1(工作流服务应用程序)时...工具箱中没有任何项目代表我的服务参考WF1!它缺失了。没有运气试图添加它...我迷路了。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

观看视频并根据您上面的第二条评论后,我认为没有必要尝试将WorkflowService用作其他工作流程中的活动,与视频显示的方式相同。意识到,在视频中,他只是打电话给其中一个服务操作。 Workflow控制台模板项目允许通过将操作包装在Activity中以这种简单的方式调用服务操作,从而使您不必实例化代理客户端。还有其他方法可以达到相同的效果。

我会做什么:将WinForms客户端中的服务引用添加到WorkflowServiceApp,WF1(您已经这样做了)。在第二个工作流程(WF2)中,实例化WF1类型的代理并直接调用服务公开的操作,就像您不在工作流程内时调用任何正常的服务操作一样。它基本上消耗WCF服务。一种选择是创建服务类型的变量,在例如Assign活动中实例化新引用,创建服务结果类型的变量,最后调用服务,或者在其他Assign或InvokeMethod活动中。

首先分配活动:

proxy = New WF1Client() //That has to be the name of you client as created by the Service Reference

第二次分配活动:

Result = proxy.MyMethod(...) //The call to the operation. You would have to create the variables to hold the result and any input parameters you wish to pass to the operation.

那将是直截了当的。您不需要将服务本身用作活动。

如果仍然需要在设计器内部使用一个活动或在其他工作流之间共享,请创建一个Code Activity,在其中调用服务操作(实例化代理,设置输入等)。 ),编译并且您的代码活动将出现在工具箱中,以便您可以在WF2中使用它。此外,如果您创建一个ClassLibrary并实现您的活动,无论是WF附带的活动还是custom activities,您可以通过引用ClassLibrary在不同的工作流程项目中重复使用它们。如果您可以控制WF1的开发,则可以使用此方法重新使用您的活动。

希望这有帮助。