StateMachineWorkflowActivity 类

定义

注意

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 可以包含其他活动。 StateMachineWorkflowActivityEventDrivenActivity 活动是 StateMachineWorkflowActivity唯一允许的子活动。 允许 EventDrivenActivity 活动,因为根活动本身的行为类似于状态。 因此,可以在 StateMachineWorkflowActivity中的所有状态活动使用的根级别具有 EventDrivenActivity 活动。 此级别的 EventDrivenActivity 活动提供用于处理工作流事件和自动执行状态转换的全局机制。 StateActivity 活动提供了一种机制来定义模型中的各个阶段。

StateMachineWorkflowActivity 具有执行状态机工作流所需的属性。 最值得注意的是,StateMachineWorkflowActivity 有两个重要属性:InitialStateNamePropertyCompletedStateNameProperty

状态机的 InitialStateNameProperty 是状态机创建状态机实例时的状态。 InitialStateNameProperty 属性是必需的,必须在创建 StateMachineWorkflowActivity 时提供。 状态机 InitialStateNameProperty 类似于状态机中包含的任何其他状态活动。 状态活动可以是 StateMachineWorkflowActivity 根活动的直接子级,StateMachineWorkflowActivity 只能有一个 InitialStateNameProperty

StateMachineWorkflowActivityCompletedStateNameProperty 是指定为 StateMachineWorkflowActivity结束状态的 StateActivity 活动。 转换到 CompletedStateNameProperty时,工作流执行已完成。 CompletedStateNameProperty 不是强制性的。 这意味着你可以有一个尚未完成的 StateMachineWorkflowActivity。 这并不意味着状态机工作流始终在内存中处于活动状态。 等待事件时,可能会卸载 StateMachineWorkflowActivity

StateMachineWorkflowActivity 从未完成的活动在处理长时间运行的业务交易时特别有用,就像供应商收到的采购订单一样。 已履行采购订单的事实并不意味着采购订单过程已结束。 可能返回属于采购订单的货物,或者可以修改采购订单,并在履行后添加其他商品。 有时,出于法律或其他目的,可能需要在较长时间内保留采购订单记录。 工作流未完成的事实只是意味着工作流仍处于卸载状态。 可能需要停用工作流,这意味着在一定时间段后,工作流实例可能会被迫关闭。

构造函数

StateMachineWorkflowActivity()
已过时.

初始化 StateMachineWorkflowActivity 类的新实例。

StateMachineWorkflowActivity(String)
已过时.

使用活动的名称初始化 StateMachineWorkflowActivity 类的新实例。

字段

CompletedStateNameProperty
已过时.

表示面向 CompletedStateName 属性的 DependencyObject

InitialStateNameProperty
已过时.

表示面向 InitialStateName 属性的 DependencyObject

SetStateQueueName
已过时.

用于更改 StateMachineWorkflowActivity状态的 WorkflowQueue 的名称。 此字段为常量。

StateChangeTrackingDataKey
已过时.

保留更改跟踪数据键的字符串值;“StateActivity.StateChange”。 此字段是常量。

(继承自 StateActivity)

属性

Activities
已过时.

获取表示所有子活动的集合 ActivityCollection的对象。

(继承自 CompositeActivity)
CanModifyActivities
已过时.

获取或设置一个值,该值控制是否可以修改 Activities 中的单个活动。

(继承自 CompositeActivity)
CompletedStateName
已过时.

获取或设置工作流的结束 StateActivity

CurrentStateName
已过时.

获取当前正在执行的 StateActivity的名称。

Description
已过时.

获取或设置 Activity的用户定义说明。

(继承自 Activity)
DesignMode
已过时.

获取一个值,该值指示此实例是处于设计模式还是运行时模式。

(继承自 DependencyObject)
DynamicUpdateCondition
已过时.

获取或设置一个 ActivityCondition,该 ActivityCondition 确定在派生类中重写时是否可以在工作流中进行动态更新。

Enabled
已过时.

获取或设置一个值,该值指示是否为执行和验证启用此实例。

(继承自 Activity)
EnabledActivities
已过时.

获取表示已启用 Activities 子集的只读集合。

(继承自 CompositeActivity)
ExecutionResult
已过时.

获取上次运行此实例的尝试 ActivityExecutionResult

(继承自 Activity)
ExecutionStatus
已过时.

获取此实例的当前 ActivityExecutionStatus

(继承自 Activity)
InitialStateName
已过时.

获取或设置创建状态机实例时 StateMachineWorkflowActivity 所在的 StateActivity

IsDynamicActivity
已过时.

获取有关活动是否在工作流实例的默认 ActivityExecutionContext 内执行的信息。

(继承自 Activity)
Name
已过时.

获取或设置此实例的名称。 此名称必须符合工作流项目中使用的编程语言的变量命名约定。

(继承自 Activity)
Parent
已过时.

获取包含此 ActivityCompositeActivity

(继承自 Activity)
ParentDependencyObject
已过时.

获取 DependencyObject 图中的父 DependencyObject

(继承自 DependencyObject)
PreviousStateName
已过时.

获取以前执行的 StateActivity的名称。

QualifiedName
已过时.

获取活动的限定名称。 限定的活动名称在工作流实例中始终是唯一的。

(继承自 Activity)
Site
已过时.

获取或设置对 DependencyObjectSite 组件的引用。

(继承自 DependencyObject)
UserData
已过时.

获取将自定义数据与此类实例关联的 IDictionary

(继承自 DependencyObject)
WorkflowInstanceId
已过时.

获取与实例关联的 Guid

(继承自 Activity)

方法

AddHandler(DependencyProperty, Object)
已过时.

DependencyObject的事件添加处理程序。

(继承自 DependencyObject)
ApplyWorkflowChanges(WorkflowChanges)
已过时.

将参数中的 WorkflowChanges 清单应用于此实例。

(继承自 CompositeActivity)
Cancel(ActivityExecutionContext)
已过时.

取消 StateActivity的执行。

(继承自 StateActivity)
Clone()
已过时.

创建 Activity的深层副本。

(继承自 Activity)
Dispose()
已过时.

释放 DependencyObject使用的所有资源。

(继承自 DependencyObject)
Dispose(Boolean)
已过时.

对此实例 Dispose(Boolean) 调用,并选择性地调用此实例的所有子活动 Dispose()

(继承自 CompositeActivity)
Equals(Object)
已过时.

确定指定的对象是否等于当前对象。

(继承自 Object)
Execute(ActivityExecutionContext)
已过时.

执行 StateActivity

(继承自 StateActivity)
GetActivityByName(String, Boolean)
已过时.

返回 Activity 的实例,如果第二个参数 false,则返回从根 Activity 目录下的所有活动(如果第二个参数为 false)和当前 Activity 下(如果第二个参数 true)。

(继承自 Activity)
GetActivityByName(String)
已过时.

返回从此实例的根活动(位于工作流中)下运行的所有活动的集合中请求其名称的 Activity 实例。

(继承自 Activity)
GetBinding(DependencyProperty)
已过时.

提供对与特定 DependencyProperty关联的 ActivityBind 的访问权限。

(继承自 DependencyObject)
GetBoundValue(ActivityBind, Type)
已过时.

检索作为 ActivityBind主题的 Object

(继承自 DependencyObject)
GetDynamicActivities(Activity)
已过时.

返回一个数组,该数组包含指定活动的所有当前正在执行的实例。

(继承自 CompositeActivity)
GetDynamicActivity(String)
已过时.

获取与指定子活动名称对应的 Activity 的执行实例。

(继承自 StateActivity)
GetHashCode()
已过时.

用作默认哈希函数。

(继承自 Object)
GetInvocationList<T>(DependencyProperty)
已过时.

获取一个数组,该数组包含指定 DependencyProperty的委托。

(继承自 DependencyObject)
GetType()
已过时.

获取当前实例的 Type

(继承自 Object)
GetValue(DependencyProperty)
已过时.

提供对指定 DependencyProperty值的访问权限。

(继承自 DependencyObject)
GetValueBase(DependencyProperty)
已过时.

提供对 DependencyProperty 绑定对象的访问并绕过 GetValue(DependencyProperty) 替代。

(继承自 DependencyObject)
HandleFault(ActivityExecutionContext, Exception)
已过时.

在此实例的执行上下文中引发异常时调用。

(继承自 CompositeActivity)
Initialize(IServiceProvider)
已过时.

使用服务提供商初始化 StateActivity

(继承自 StateActivity)
InitializeProperties()
已过时.

在派生类中重写时,对依赖属性执行初始化。

(继承自 DependencyObject)
Invoke<T>(EventHandler<T>, T)
已过时.

订阅 EventHandler 并调用该委托。

(继承自 Activity)
Invoke<T>(IActivityEventListener<T>, T)
已过时.

订阅 IActivityEventListener<T> 并调用该委托。

(继承自 Activity)
IsBindingSet(DependencyProperty)
已过时.

指示 DependencyProperty 的值是否设置为绑定。 请参阅 SetBinding(DependencyProperty, ActivityBind)

(继承自 DependencyObject)
MemberwiseClone()
已过时.

创建当前 Object的浅表副本。

(继承自 Object)
MetaEquals(DependencyObject)
已过时.

确定此 DependencyObjectmetaproperties 是否等于参数化 DependencyObjectmetaproperties

(继承自 DependencyObject)
OnActivityChangeAdd(ActivityExecutionContext, Activity)
已过时.

确定要添加的活动是否为 EventDrivenActivity,如果是这样,请验证是否需要订阅新添加的事件驱动。

(继承自 StateActivity)
OnActivityChangeRemove(ActivityExecutionContext, Activity)
已过时.

删除活动时调用。

(继承自 CompositeActivity)
OnActivityExecutionContextLoad(IServiceProvider)
已过时.

每次加载此活动的 ActivityExecutionContext 时,工作流运行时引擎都会调用该引擎。

(继承自 CompositeActivity)
OnActivityExecutionContextUnload(IServiceProvider)
已过时.

每次卸载此活动的 ActivityExecutionContext 时,工作流运行时引擎都会调用。

(继承自 CompositeActivity)
OnClosed(IServiceProvider)
已过时.

由工作流运行时引擎调用,作为活动转换为 Closed 状态的一部分。

(继承自 StateActivity)
OnListChanged(ActivityCollectionChangeEventArgs)
已过时.

Activities 属性更改时执行其他处理。

(继承自 CompositeActivity)
OnListChanging(ActivityCollectionChangeEventArgs)
已过时.

在对基础 Activities进行更改之前发生的事件。

(继承自 CompositeActivity)
OnWorkflowChangesCompleted(ActivityExecutionContext)
已过时.

在此实例的集合 Activities 进行更改后调用。

(继承自 CompositeActivity)
RaiseEvent(DependencyProperty, Object, EventArgs)
已过时.

引发与指定依赖属性关联的 Event

(继承自 Activity)
RaiseGenericEvent<T>(DependencyProperty, Object, T)
已过时.

引发与所引用 DependencyProperty关联的事件。

(继承自 Activity)
RegisterForStatusChange(DependencyProperty, IActivityEventListener<ActivityExecutionStatusChangedEventArgs>)
已过时.

为状态更改事件注册指定的 DependencyProperty

(继承自 Activity)
RemoveHandler(DependencyProperty, Object)
已过时.

从关联的 DependencyProperty中删除 EventHandler

(继承自 DependencyObject)
RemoveProperty(DependencyProperty)
已过时.

DependencyObject中删除 DependencyProperty

(继承自 DependencyObject)
Save(Stream, IFormatter)
已过时.

使用为序列化提供的自定义 IFormatterActivity 写入 Stream 以供持久性。

(继承自 Activity)
Save(Stream)
已过时.

Activity 写入 Stream 以供持久性。

(继承自 Activity)
SetBinding(DependencyProperty, ActivityBind)
已过时.

设置指定 DependencyPropertyActivityBind

(继承自 DependencyObject)
SetBoundValue(ActivityBind, Object)
已过时.

设置目标 ActivityBind的值。

(继承自 DependencyObject)
SetReadOnlyPropertyValue(DependencyProperty, Object)
已过时.

设置只读 DependencyProperty的值。

(继承自 DependencyObject)
SetValue(DependencyProperty, Object)
已过时.

DependencyProperty 的值设置为对象。

(继承自 DependencyObject)
SetValueBase(DependencyProperty, Object)
已过时.

DependencyProperty 的值设置为指定的 Object,绕过 SetValue(DependencyProperty, Object)

(继承自 DependencyObject)
ToString()
已过时.

提供表示此实例的字符串。

(继承自 Activity)
TrackData(Object)
已过时.

通知运行时跟踪基础结构挂起的跟踪信息。

(继承自 Activity)
TrackData(String, Object)
已过时.

通知运行时跟踪基础结构挂起的跟踪信息。

(继承自 Activity)
Uninitialize(IServiceProvider)
已过时.

当活动从 Initialized 状态转换为 Closed 状态时,由工作流运行时引擎调用。

(继承自 CompositeActivity)
UnregisterForStatusChange(DependencyProperty, IActivityEventListener<ActivityExecutionStatusChangedEventArgs>)
已过时.

取消注册状态更改事件的指定 DependencyProperty

(继承自 Activity)

事件

Canceling
已过时.

取消活动执行时发生。

(继承自 Activity)
Closed
已过时.

Activity 完成执行时发生。

(继承自 Activity)
Compensating
已过时.

Activity上运行补偿方法时发生。

(继承自 Activity)
Executing
已过时.

运行 Activity 时发生。

(继承自 Activity)
Faulting
已过时.

在实例运行期间引发异常时发生。

(继承自 Activity)
StatusChanged
已过时.

当正在运行的 ActivityActivityExecutionStatus 发生更改时发生。

(继承自 Activity)

显式接口实现

IComponent.Disposed
已过时.

表示处理组件的 Disposed 事件的方法。

(继承自 DependencyObject)

适用于

另请参阅