图 7事务与补偿活动(Click the image for a larger view)
调用其他代码
此外,还有一些活动可调用和执行代码。这些活动包括:Code、InvokeWorkflow、InvokeWebService 和 CallExternalMethod。Code 活动最灵活,可以表示您在工作流某一点插入的自定义代码块。Code 活动触发您在工作流中处理的 ExecuteCode 事件,并能使其运行您所需要的代码。代码将包含在工作流中并与其一起进行编译。Code 活动可以调用外部程序集,只要您在 ExecuteCode 事件处理程序中加入所有能够加载程序集和选择方法的必要代码。
InvokeWorkflow 活动可以引用工作流和异步调用工作流。您可以传递输入参数,但要注意 InvokeWorkflow 活动要在被启动的工作流开始执行之前完成。您无法将当前工作流的执行与外部工作流的执行同步,也不能处理当前工作流中的输出参数。
InvokeWebService 活动可以通过代理类同步调用 Web 服务方法。使用 Code 活动并调用 Web 服务,可以对活动的行为进行模拟。
最后,CallExternalMethod 活动可用于调用本地服务方法。本地服务是对于实施以 ExternalDataExchange 属性修饰的接口的工作流可用的任何类。另外,代表本地服务的类必须作为外部数据交换服务添加到工作流运行时。
Dim service As New ExternalDataExchangeService
runtime.AddService(service)
Dim localService As New YourService()
service.AddService(localService)
您可以配置 CallExternalMethod 活动以调用由本地服务实施的接口的方法。为什么 CallExternalMethod 仅限于调用已知接口的方法?原因在于活动不仅仅是代码执行者,而是旨在与 HandleExternalEvent 活动一起实施与本地服务的双向交流。借助 CallExternalMethod 活动,通过将 HandleExternalEvent 活动加入工作流,您可以调用服务方法,处理服务引发的事件。
总结
活动是工作流的构造块。通过在 Visual Studio 2005 设计器中撰写活动,您可以创建工作流解决方案。与 ASP.NET 中的服务器控件和 Windows Forms 中的控件类似,工作流活动是解决方案的精华所在并形成了开发人员的主要工具箱。Windows Workflow Foundation 提供了一些随机活动。在此,我要回顾一下涵盖事务、并行和条件执行、循环以及异常处理的活动。wf.netfx3.com 上提供了解一些其他免费活动。将它们挑出来!
本新闻共
6页,当前在第
6页
1 2 3 4 5 6