《WF编程》系列之27 – 基本活动:EventHandlingScopeActivity & SynchronizationScopeActivity & ReplicatorActivity
本文向大家介绍了EventHandlingScopeActivity、SynchronizationScopeActivity 和ReplicatorActivity这三个基本活动。
本文向大家介绍了EventHandlingScopeActivity、SynchronizationScopeActivity 和ReplicatorActivity这三个基本活动。
本文向大家介绍了ParallelActivity、DelayActivity和ListenActivity这三个基本活动。
InvokeWorkflow活动可以异步的执行另一个工作流.因为执行过程是异步的,所以我们无法获取另一个工作流的输出参数,但我们可以和宿主建立额外的通信机制来获取其输出.
本文向大家介绍了SuspendActivity、TerminateActivity和ThrowActivity这三个基本活动。
本文向大家介绍了IfElseActivity 、 WhileActivity 和 SequenceActivity这三个基本活动。
Code活动只有一个值得注意的功能-ExecuteCode事件.如果我们没有指定这个事件的处理程序, Code活动就不会通过验证.在工作流设计器中,我们可以双击Code活动,Visual Studio会自动创建并分配事件处理程序-我们所需要做的只是编写其中的代码实现而已.
在工作流内部管理异常和管理C#中的异常类似.复合活动包含一个故障处理程序(fault handlers)来捕捉异常. 在.NET中,异常一直向上传递直到.NET Runtime为其找到合适的异常处理程序.在工作流内部也是一样,如果活动没有处理发生的异常,Runtime会把这个异常传递给它的父活动.如果 Runtime无法找到故障处理程序,Runtime会终止工作流并触发WorkflowTerminated事件.
本文来介绍如何编写一个宿主来执行工作流.
本例中的服务只需要提供IBugFlowService接口的实现即可.它将作为宿主和bug跟踪工作流之间的桥梁.
许多开发人员想要建立一个更加正式的机制来方便和工作流交互.尽管使用Dictionary可以简单灵活的向工作流传递数据,但这种方法需要参数名称和伴随属性的严格匹配.而且我们只可以在工作流开始时使用参数向工作流传递数据,或在结束是获取数据.许多工作流需要在执行过程的不同时期和宿主交换数据.我们可以使用事件和方法调用来达到这个目的.这一节,我们来讨论数据传输通信的基本原理.