StateMachineWorkflowActivity 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注意
The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*
用作状态机工作流的根容器。 包含事件驱动的活动和状态。
public ref class StateMachineWorkflowActivity : System::Workflow::Activities::StateActivity
[System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))]
public class StateMachineWorkflowActivity : System.Workflow.Activities.StateActivity
[System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))]
[System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public class StateMachineWorkflowActivity : System.Workflow.Activities.StateActivity
[<System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))>]
type StateMachineWorkflowActivity = class
inherit StateActivity
[<System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))>]
[<System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")>]
type StateMachineWorkflowActivity = class
inherit StateActivity
Public Class StateMachineWorkflowActivity
Inherits StateActivity
- 继承
- 属性
示例
下面的代码示例演示如何创建 StateMachineWorkflowActivity 类的新实例,并使用该实例实现一个能够在三种状态间转换的基本状态机。 此代码示例摘自 StateMachineWorkflow.cs 文件中的“SimpleStateMachineWorkflow”SDK 示例。 有关详细信息,请参阅 简单状态机。
this.WhileLoop = new System.Workflow.Activities.WhileActivity();
this.Parallel = new System.Workflow.Activities.ParallelActivity();
this.Sequence1 = new System.Workflow.Activities.SequenceActivity();
this.Sequence2 = new System.Workflow.Activities.SequenceActivity();
this.ConsoleMessage1 = new System.Workflow.Activities.CodeActivity();
this.ConsoleMessage2 = new System.Workflow.Activities.CodeActivity();
//
// WhileLoop
//
this.WhileLoop.Activities.Add(this.Parallel);
codecondition1.Condition += new System.EventHandler<System.Workflow.Activities.ConditionalEventArgs>(this.WhileCondition);
this.WhileLoop.Condition = codecondition1;
this.WhileLoop.Name = "WhileLoop";
//
// Parallel
//
this.Parallel.Activities.Add(this.Sequence1);
this.Parallel.Activities.Add(this.Sequence2);
this.Parallel.Name = "Parallel";
Me.WhileLoop = New System.Workflow.Activities.WhileActivity()
Me.Parallel = New System.Workflow.Activities.ParallelActivity()
Me.Sequence1 = New System.Workflow.Activities.SequenceActivity()
Me.Sequence2 = New System.Workflow.Activities.SequenceActivity()
Me.ConsoleMessage1 = New System.Workflow.Activities.CodeActivity()
Me.ConsoleMessage2 = New System.Workflow.Activities.CodeActivity()
'
' WhileLoop
'
Me.WhileLoop.Activities.Add(Me.Parallel)
AddHandler codecondition1.Condition, AddressOf Me.WhileCondition
Me.WhileLoop.Condition = codecondition1
Me.WhileLoop.Name = "WhileLoop"
'
' Parallel
'
Me.Parallel.Activities.Add(Me.Sequence1)
Me.Parallel.Activities.Add(Me.Sequence2)
Me.Parallel.Name = "Parallel"
注解
注意
本材料讨论的类型和命名空间已废弃不用。 有关详细信息,请参阅 Windows Workflow Foundation 4.5 中弃用的类型。
StateMachineWorkflowActivity 是一个活动容器,用于创建遵循状态机模型的工作流。
StateMachineWorkflowActivity 是一种 CompositeActivity,这意味着 StateMachineWorkflowActivity 可以包含其他活动。 StateMachineWorkflowActivity 和 EventDrivenActivity 活动是 StateMachineWorkflowActivity 的仅允许的子活动。 允许 EventDrivenActivity 活动是因为根活动本身类似于状态。 因此,可以使位于根级别的 EventDrivenActivity 活动由 StateMachineWorkflowActivity 中的所有状态活动使用。 位于此级别的 EventDrivenActivity 动提供一种处理工作流事件的全局机制,并可以自动执行状态转换。 StateActivity 活动提供一种定义模型中不同阶段的机制。
StateMachineWorkflowActivity 具有执行状态机工作流所需的属性。 最值得注意的是,StateMachineWorkflowActivity 具有两个重要的属性:InitialStateNameProperty 和 CompletedStateNameProperty。
状态机的 InitialStateNameProperty 是创建状态机的实例时状态机所处的状态。 InitialStateNameProperty 属性是强制的,并且必须在创建 StateMachineWorkflowActivity 时提供。 状态机的 InitialStateNameProperty 类似于状态机中包含的任何其他状态活动。 状态活动可以是 StateMachineWorkflowActivity 根活动的直接子活动,一个 StateMachineWorkflowActivity 只能有一个 InitialStateNameProperty。
CompletedStateNameProperty 的 StateMachineWorkflowActivity 是指定为 StateActivity 的最终状态的 StateMachineWorkflowActivity 活动。 在转换到 CompletedStateNameProperty 时,工作流执行完成。 CompletedStateNameProperty 不是强制的。 这意味可以有未完成的 StateMachineWorkflowActivity。 这并不意味着状态机总是在内存中处于活动状态。 StateMachineWorkflowActivity 可能会在它等待事件时被卸载。
在处理长时间运行的业务事务(如供应商接收采购订单)时,始终不会完成的 StateMachineWorkflowActivity 活动尤其有用。 完成订单并不意味着采购订单过程结束。 在完成后,采购订单中的部分商品可能会返回,也可能会修改订单或将额外项目添加到采购订单。 有时为了法律或其他目的,可能需要长时间保留采购订单记录。 工作流未完成仅意味着工作流保持在卸载状态。 可能有退出工作流的情况,这意味着在一段时间以后,可能会强制关闭工作流实例。
构造函数
StateMachineWorkflowActivity() |
已过时.
初始化 StateMachineWorkflowActivity 类的新实例。 |
StateMachineWorkflowActivity(String) |
已过时.
使用活动名初始化 StateMachineWorkflowActivity 类的新实例。 |
字段
CompletedStateNameProperty |
已过时.
表示针对 DependencyObject 属性的 CompletedStateName。 |
InitialStateNameProperty |
已过时.
表示针对 DependencyObject 属性的 InitialStateName。 |
SetStateQueueName |
已过时.
用于更改 WorkflowQueue 状态的 StateMachineWorkflowActivity 的名称。 此字段为常数。 |
StateChangeTrackingDataKey |
已过时.
包含更改跟踪数据键的字符串值:“StateActivity.StateChange”。 此字段为常数。 (继承自 StateActivity) |
属性
方法
事件
Canceling |
已过时.
在取消活动执行时发生。 (继承自 Activity) |
Closed |
已过时.
在 Activity 完成执行时发生。 (继承自 Activity) |
Compensating |
已过时.
在 Activity 上运行补偿方法时发生。 (继承自 Activity) |
Executing |
已过时.
在运行 Activity 时发生。 (继承自 Activity) |
Faulting |
已过时.
在实例的运行期间引发异常时发生。 (继承自 Activity) |
StatusChanged |
已过时.
在运行中的 ActivityExecutionStatus 的 Activity 更改时发生。 (继承自 Activity) |
显式接口实现
IComponent.Disposed |
已过时.
表示处理组件的“Disposed”事件的方法。 (继承自 DependencyObject) |