wf工作流——基础活动(带详细文档说明)

1.CodeActivity虽然在工作流中执行自定义代码非常有用,但是实际上Code活动应该尽量少使用.我们应该将这些代码封装到自定义活动中.自定义活动可以拥有属性,而且可以重复使用.而且,许多活动在执行时都会触发事件.有时候,我们完全可以不使用Code活动,仅仅通过在这些事件中编写代码就可以达到预期的效果.


2.IfElseActivity可以通过右键单击IfElseActivity并选择添加分支(AddBranch)来添加一个分支。也可以通过右键单击分支并选择删除(Delete)来删除分支删除一个分支。WhileActivity只可以拥有一个子活动。Sequence活动是一个复合活动,也就是说Sequence活动可以管理一个或多个子活动.这些子活动轮流执行,这个就可以和whileactivity配合使用。以上三个基础活动都可以使用声明性规则条件和代码条件,前者是通过设置条件,后者是通过编写对应事件进行判断。


3.SuspendActivity 当工作流遇到错误而需要手工干预时,我们可以使用Suspend活动来暂时挂起工作流. Suspend活动有一个字符串类型的Error属性.宿主可以订阅工作流Runtime的WorkflowSuspended事件并通过其事件参数(WorkflowSuspendedEventArgs类型)的Error属性来获取错误信息.WorkflowSuspended事件参数还提供了一个WorkflowInstance属性.宿主可以使用WorkflowInstance类的Resume方法来使工作流恢复执行,也可以使用Terminate方法使工作流悲惨的提前结束.

 

4.和Suspend活动相似,Terminate活动也可以挂起工作流.不同的是,使用Terminate挂起的工作流是无法被宿主恢复执行的(从单词含义来理解会更加容易:Suspend,暂停;Terminate,终止).如果工作流已经执行到不可能继续(也不可能恢复)的地步,就让我们用这个活动来结束它吧.Terminate活动也有一个字符串类型的Error属性.宿主可以订阅Runtime的WorkflowTerminated事件.事件处理程序参数(WorkflowTerminatedEventArgs类型)的属性Exception(WorkflowTerminatedException类型)则包含了错误信息.如果想要指定引发WorkflowTerminated事件的异常类型,应该使用Throw活动.Throw活动可以使工作流捕捉到异常并继续执行,而Terminate活动则总是抛出异常并终止工作流.


5.Throw活动和C#中的Throw语句类似-它的作用是抛出一个异常.我们可以在Code活动的ExcuteCode事件中编写代码来抛出异常,那么为什么要使用Throw活动呢? 因为Throw活动不仅可以抛出异常,还可以在工作流模型中构造一个显式的异常块.如果异常没有被处理并且传播到工作流之外,那么WFRuntime将捕获它,接着终止工作流并抛出WorkflowTerminated事件.Runtime会在WorkflowTerminated事件的参数中包含异常的信息.Throw活动的Fault属性可以引用要抛出的异常类型.我们可以绑定Fault属性到工作流的域或其它活动的属性.我们还可以使用FaultType属性来描述并约束待抛出异常的类型.如果FaultType没有被设置,Throw活动可能抛出任何类型的异常.


6.InvokeWorkflowActivity InvokeWorkflow活动可以异步的执行另一个工作流.因为执行过程是异步的,所以我们无法获取另一个工作流的输出参数,但我们可以和宿主建立额外的通信机制来获取其输出.在设计器中,我们设置InvokeWorkflow的TargetWorkflow属性来引用想要执行的工作流类型,我们可以选择项目内或引用程序集的工作流类型.设置了目标类型之后,属性面板中就会列出目标类型的工作流参数,我们可以将其与当前工作流的域或属性绑定.在开始第二个工作流之前,InvokeWorkflow活动将触发Invoking事件,可以在此事件内编写代码来初始化参数.

 

之后还有很多 这里就不一一贴出了,给个链接地址下载 wf基础活动说明

地址:http://download.csdn.net/source/2664812

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值