StateActivity Class

Definition

Caution

The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*

Represents a state in a StateMachineWorkflowActivity.

public ref class StateActivity : System::Workflow::ComponentModel::CompositeActivity
[System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateActivity), "Resources.StateActivity.png")]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))]
public class StateActivity : System.Workflow.ComponentModel.CompositeActivity
[System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateActivity), "Resources.StateActivity.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 StateActivity : System.Workflow.ComponentModel.CompositeActivity
[<System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateActivity), "Resources.StateActivity.png")>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))>]
type StateActivity = class
    inherit CompositeActivity
[<System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateActivity), "Resources.StateActivity.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 StateActivity = class
    inherit CompositeActivity
Public Class StateActivity
Inherits CompositeActivity
Inheritance
Derived
Attributes

Examples

The following code example shows how to create a new instance of the StateActivity class and use it implement a simple state machine to transition between 3 states. This code example is part of the SimpleStateMachineWorkflow SDK sample from the StateMachineWorkflow.cs file. For more information, see Simple State Machine.

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"

Remarks

Note

This material discusses types and namespaces that are obsolete. For more information, see Deprecated Types in Windows Workflow Foundation 4.5.

The StateActivity represents a State in a StateMachineWorkflowActivity. State activities could contain one or more EventDrivenActivity, or StateActivity classes, one StateInitializationActivity class, and one StateFinalizationActivity class. SetState activities are used inside an EventHandlersActivity and StateInitializationActivity to move the state of the workflow.

When a StateActivity is executing, the only events that can be received are the events that can be handled by the EventDrivenActivity activities in the StateActivity and also the EventDrivenActivity activities attached to the enclosing StateActivity activities and the root Activity.

When the StateActivity starts running, the StateActivity will check to see whether a StateInitializationActivity activity is present or not. The StateActivity can have zero or one StateInitializationActivity activity. If a StateInitializationActivity activity is present the StateInitializationActivity will be executed. As soon as the StateInitializationActivity activity finishes, the StateActivity blocks events so that the StateActivity only receives events that can be handled by its EventDrivenActivity activities.

The StateActivity is a CompositeActivity, meaning the StateActivity activity can contain other activities.

Constructors

StateActivity()

Initializes a new instance of the StateActivity class.

StateActivity(String)

Initializes a new instance of the StateActivity class using the name of the activity.

Fields

StateChangeTrackingDataKey

Holds the string value of the change tracking data key; "StateActivity.StateChange". This field is a constant.

Properties

Activities

Gets the object representing the collection, ActivityCollection, of all child activities.

(Inherited from CompositeActivity)
CanModifyActivities

Gets or sets a value which controls whether the individual activities within Activities can be modified.

(Inherited from CompositeActivity)
Description

Gets or sets the user-defined description of the Activity.

(Inherited from Activity)
DesignMode

Gets the value that indicates whether this instance is in design or run-time mode.

(Inherited from DependencyObject)
Enabled

Gets or sets a value that indicates whether this instance is enabled for execution and validation.

(Inherited from Activity)
EnabledActivities

Gets the read-only collection that represents the subset of Activities that are enabled.

(Inherited from CompositeActivity)
ExecutionResult

Gets the ActivityExecutionResult of the last attempt to run this instance.

(Inherited from Activity)
ExecutionStatus

Gets the current ActivityExecutionStatus of this instance.

(Inherited from Activity)
IsDynamicActivity

Gets information about whether the activity is executing within the default ActivityExecutionContext of the workflow instance.

(Inherited from Activity)
Name

Gets or sets the name of this instance. This name must conform to the variable naming convention of the programming language that is being used in the Workflow project.

(Inherited from Activity)
Parent

Gets the CompositeActivity that contains this Activity.

(Inherited from Activity)
ParentDependencyObject

Gets the parent DependencyObject in the DependencyObject graph.

(Inherited from DependencyObject)
QualifiedName

Gets the qualified name of the activity. Qualified activity names are always unique in a workflow instance.

(Inherited from Activity)
Site

Gets or sets a reference to the Site component of the DependencyObject.

(Inherited from DependencyObject)
UserData

Gets an IDictionary that associates custom data with this class instance.

(Inherited from DependencyObject)
WorkflowInstanceId

Gets the Guid associated with the instance.

(Inherited from Activity)

Methods

AddHandler(DependencyProperty, Object)

Adds a handler for an event of a DependencyObject.

(Inherited from DependencyObject)
ApplyWorkflowChanges(WorkflowChanges)

Applies the WorkflowChanges manifest in the parameter to this instance.

(Inherited from CompositeActivity)
Cancel(ActivityExecutionContext)

Cancels the execution of the StateActivity.

Clone()

Creates a deep copy of the Activity.

(Inherited from Activity)
Dispose()

Releases all the resources used by the DependencyObject.

(Inherited from DependencyObject)
Dispose(Boolean)

Calls Dispose(Boolean) on this instance, and optionally calls Dispose() on all child activities of this instance.

(Inherited from CompositeActivity)
Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
Execute(ActivityExecutionContext)

Executes the StateActivity.

GetActivityByName(String, Boolean)

Returns the instance of the Activity whose name is requested from the set of all activities under the root the Activity of this instance if the second parameter is false and under the current Activity if the second parameter is true.

(Inherited from Activity)
GetActivityByName(String)

Returns the instance of the Activity whose name is requested from the set of all activities running under the root activity of this instance, which is within the workflow.

(Inherited from Activity)
GetBinding(DependencyProperty)

Provides access to the ActivityBind associated with the specific DependencyProperty.

(Inherited from DependencyObject)
GetBoundValue(ActivityBind, Type)

Retrieves the Object that is the subject of an ActivityBind.

(Inherited from DependencyObject)
GetDynamicActivities(Activity)

Returns an array that contains all of the currently executing instances of the specified activity.

(Inherited from CompositeActivity)
GetDynamicActivity(String)

Gets the executing instance of the Activity that corresponds to the specified child activity name.

GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetInvocationList<T>(DependencyProperty)

Gets an array that contains the delegates for the specified DependencyProperty.

(Inherited from DependencyObject)
GetType()

Gets the Type of the current instance.

(Inherited from Object)
GetValue(DependencyProperty)

Provides access to the value of the designated DependencyProperty.

(Inherited from DependencyObject)
GetValueBase(DependencyProperty)

Provides access to the bound object of a DependencyProperty and bypasses the GetValue(DependencyProperty) override.

(Inherited from DependencyObject)
HandleFault(ActivityExecutionContext, Exception)

Called when an exception is raised within the context of the execution of this instance.

(Inherited from CompositeActivity)
Initialize(IServiceProvider)

Initializes the StateActivity using the service provider.

InitializeProperties()

Performs initialization on dependency properties when overridden in a derived class.

(Inherited from DependencyObject)
Invoke<T>(EventHandler<T>, T)

Subscribes an EventHandler and invokes that delegate.

(Inherited from Activity)
Invoke<T>(IActivityEventListener<T>, T)

Subscribes an IActivityEventListener<T> and invokes that delegate.

(Inherited from Activity)
IsBindingSet(DependencyProperty)

Indicates whether the value of a DependencyProperty is set as a binding. See SetBinding(DependencyProperty, ActivityBind).

(Inherited from DependencyObject)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
MetaEquals(DependencyObject)

Determines whether the metaproperties of this DependencyObject equals the metaproperties of the parameterized DependencyObject.

(Inherited from DependencyObject)
OnActivityChangeAdd(ActivityExecutionContext, Activity)

Determines if the activity being added is an EventDrivenActivity and if so, verifies whether the newly added event driven needs to be subscribed.

OnActivityChangeRemove(ActivityExecutionContext, Activity)

Called when an activity is removed.

(Inherited from CompositeActivity)
OnActivityExecutionContextLoad(IServiceProvider)

Called by the workflow runtime engine every time the ActivityExecutionContext for this activity is loaded.

(Inherited from CompositeActivity)
OnActivityExecutionContextUnload(IServiceProvider)

Called by the workflow runtime engine every time the ActivityExecutionContext for this activity is unloaded.

(Inherited from CompositeActivity)
OnClosed(IServiceProvider)

Called by the workflow runtime engine as part of the activity's transition to the Closed state.

OnListChanged(ActivityCollectionChangeEventArgs)

Performs additional processing when the Activities property changes.

(Inherited from CompositeActivity)
OnListChanging(ActivityCollectionChangeEventArgs)

Event that occurs before a change being made to the underlying Activities.

(Inherited from CompositeActivity)
OnWorkflowChangesCompleted(ActivityExecutionContext)

Called after changes have been made to the collection Activities of this instance.

(Inherited from CompositeActivity)
RaiseEvent(DependencyProperty, Object, EventArgs)

Raises an Event associated with the specified dependency property.

(Inherited from Activity)
RaiseGenericEvent<T>(DependencyProperty, Object, T)

Raises the event associated with the referenced DependencyProperty.

(Inherited from Activity)
RegisterForStatusChange(DependencyProperty, IActivityEventListener<ActivityExecutionStatusChangedEventArgs>)

Registers the specified DependencyProperty for the status change event.

(Inherited from Activity)
RemoveHandler(DependencyProperty, Object)

Removes an EventHandler from an associated DependencyProperty.

(Inherited from DependencyObject)
RemoveProperty(DependencyProperty)

Removes a DependencyProperty from the DependencyObject.

(Inherited from DependencyObject)
Save(Stream, IFormatter)

Writes the Activity to a Stream for persistence using the custom IFormatter provided for serialization.

(Inherited from Activity)
Save(Stream)

Writes the Activity to a Stream for persistence.

(Inherited from Activity)
SetBinding(DependencyProperty, ActivityBind)

Sets the ActivityBind for the specified DependencyProperty.

(Inherited from DependencyObject)
SetBoundValue(ActivityBind, Object)

Sets the value of the target ActivityBind.

(Inherited from DependencyObject)
SetReadOnlyPropertyValue(DependencyProperty, Object)

Sets the value of a DependencyProperty, which is read-only.

(Inherited from DependencyObject)
SetValue(DependencyProperty, Object)

Sets the value of the DependencyProperty to the object.

(Inherited from DependencyObject)
SetValueBase(DependencyProperty, Object)

Sets the value of the DependencyProperty to the specified Object, bypassing the SetValue(DependencyProperty, Object).

(Inherited from DependencyObject)
ToString()

Provides a string that represents this instance.

(Inherited from Activity)
TrackData(Object)

Informs the run-time tracking infrastructure of pending tracking information.

(Inherited from Activity)
TrackData(String, Object)

Informs the run-time tracking infrastructure of pending tracking information.

(Inherited from Activity)
Uninitialize(IServiceProvider)

Called by the workflow runtime engine when an activity transitions into the Closed state from the Initialized state.

(Inherited from CompositeActivity)
UnregisterForStatusChange(DependencyProperty, IActivityEventListener<ActivityExecutionStatusChangedEventArgs>)

Un-registers the specified DependencyProperty for the status change event.

(Inherited from Activity)

Events

Canceling

Occurs when the activity execution is canceled.

(Inherited from Activity)
Closed

Occurs when an Activity has completed execution.

(Inherited from Activity)
Compensating

Occurs when running a compensation method on the Activity.

(Inherited from Activity)
Executing

Occurs when the Activity is run.

(Inherited from Activity)
Faulting

Occurs when an exception is raised during the running of the instance.

(Inherited from Activity)
StatusChanged

Occurs when the ActivityExecutionStatus of a running Activity changes.

(Inherited from Activity)

Explicit Interface Implementations

IComponent.Disposed

Represents the method that handles the Disposed event of a component.

(Inherited from DependencyObject)

Applies to

See also