Activity Class

Definition

Caution

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

Represents the fundamental building block of workflows. Activity is the base class for all activities.

public ref class Activity : System::Workflow::ComponentModel::DependencyObject
[System.Drawing.ToolboxBitmap(typeof(System.Workflow.ComponentModel.Activity), "Design.Resources.Activity.png")]
[System.Workflow.ComponentModel.Compiler.ActivityCodeGenerator(typeof(System.Workflow.ComponentModel.Compiler.ActivityCodeGenerator))]
[System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.ComponentModel.Compiler.ActivityValidator))]
[System.Workflow.ComponentModel.Serialization.RuntimeNameProperty("Name")]
public class Activity : System.Workflow.ComponentModel.DependencyObject
[System.Drawing.ToolboxBitmap(typeof(System.Workflow.ComponentModel.Activity), "Design.Resources.Activity.png")]
[System.Workflow.ComponentModel.Compiler.ActivityCodeGenerator(typeof(System.Workflow.ComponentModel.Compiler.ActivityCodeGenerator))]
[System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.ComponentModel.Compiler.ActivityValidator))]
[System.Workflow.ComponentModel.Serialization.RuntimeNameProperty("Name")]
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public class Activity : System.Workflow.ComponentModel.DependencyObject
[<System.Drawing.ToolboxBitmap(typeof(System.Workflow.ComponentModel.Activity), "Design.Resources.Activity.png")>]
[<System.Workflow.ComponentModel.Compiler.ActivityCodeGenerator(typeof(System.Workflow.ComponentModel.Compiler.ActivityCodeGenerator))>]
[<System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.ComponentModel.Compiler.ActivityValidator))>]
[<System.Workflow.ComponentModel.Serialization.RuntimeNameProperty("Name")>]
type Activity = class
    inherit DependencyObject
[<System.Drawing.ToolboxBitmap(typeof(System.Workflow.ComponentModel.Activity), "Design.Resources.Activity.png")>]
[<System.Workflow.ComponentModel.Compiler.ActivityCodeGenerator(typeof(System.Workflow.ComponentModel.Compiler.ActivityCodeGenerator))>]
[<System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.ComponentModel.Compiler.ActivityValidator))>]
[<System.Workflow.ComponentModel.Serialization.RuntimeNameProperty("Name")>]
[<System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")>]
type Activity = class
    inherit DependencyObject
Public Class Activity
Inherits DependencyObject
Inheritance
Derived
Attributes

Examples

This example defines an activity whose purpose is to send an email. The activity defines one property, Subject, that uses a dependency property in its implementation. Other properties can be defined in a similar way. The Execute method is overridden to provide the logic for sending the email. For a complete example, see the Send Email Activity Sample.

public class SendEmail : Activity  
{  
    public static readonly DependencyProperty SubjectProperty =  
        DependencyProperty.Register("Subject", typeof(string), typeof(SendEmail));  

    public string Subject  
    {  
        get { return base.GetValue(SubjectProperty) as string; }  
        set { base.SetValue(SubjectProperty, value); }  
    }  

    // Define other properties...  

    protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)  
    {  
        // Logic to send the email goes here...  
        return ActivityExecutionStatus.Closed;  
    }  
}  

Remarks

Note

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

An Activity is the fundamental building block of workflows. An Activity defines a set of properties and events, such as any class, along with execution logic that defines the activity's run-time behavior. A set of additional components can be associated with an Activity. These include, but are not limited to a validator, a code generator, custom serializers, and a designer.

All activities share a common set of properties defined on the Activity base class. Each Activity can declare its own additional properties according to its requirements by extending this class. Because Activity derives from DependencyObject, properties can be defined as standard CLR properties and as dependency properties.

The execution logic of an Activity fulfills a contract that exists between any Activity and the workflow runtime. You must document the execution logic of any Activity in a functional sense, so that a workflow developer who uses the Activity knows how it behaves. The execution logic itself is hidden from the workflow developer who includes the activity in a workflow, because the execution logic is part of a contract that exists strictly between the workflow runtime and the Activity.

Constructors

Activity()

Initializes a new instance of the Activity class.

Activity(String)

Initializes a new instance of the Activity class, while initializing the Name.

Fields

ActivityContextGuidProperty

The DependencyProperty that represents the Guid of the ActivityExecutionContext that is associated with the Activity.

CancelingEvent

Represents the DependencyProperty that targets the Canceling event.

ClosedEvent

Represents the DependencyProperty that targets the Closed event.

CompensatingEvent

Represents the DependencyProperty that targets the Compensating event.

ExecutingEvent

Represents the DependencyProperty that targets the Executing event, which occurs when the activity is executed.

FaultingEvent

The DependencyProperty that represents the Faulting event.

StatusChangedEvent

Represents the DependencyProperty that targets the StatusChanged event.

Properties

Description

Gets or sets the user-defined description of the 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.

ExecutionResult

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

ExecutionStatus

Gets the current ActivityExecutionStatus of this instance.

IsDynamicActivity

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

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.

Parent

Gets the CompositeActivity that contains this 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.

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.

Methods

AddHandler(DependencyProperty, Object)

Adds a handler for an event of a DependencyObject.

(Inherited from DependencyObject)
Cancel(ActivityExecutionContext)

Called by the workflow runtime to cancel execution of an activity that is currently executing.

Clone()

Creates a deep copy of the Activity.

Dispose()

Releases all the resources used by the DependencyObject.

(Inherited from DependencyObject)
Dispose(Boolean)

Releases the unmanaged resources and optionally releases the managed resources used by DependencyObject.

(Inherited from DependencyObject)
Equals(Object)

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

(Inherited from Object)
Execute(ActivityExecutionContext)

Called by the workflow runtime to execute an 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.

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.

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)
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.

Initialize(IServiceProvider)

Called by the workflow runtime to initialize an activity during the construction of a new workflow instance. This method is called during the construction of a dynamic ActivityExecutionContext.

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.

Invoke<T>(IActivityEventListener<T>, T)

Subscribes an IActivityEventListener<T> and invokes that delegate.

IsBindingSet(DependencyProperty)

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

(Inherited from DependencyObject)
Load(Stream, Activity)

Loads an instance of an Activity from a Stream.

Load(Stream, Activity, IFormatter)

Loads an instance of an Activity from a Stream using the custom IFormatter for deserialization.

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)
OnActivityExecutionContextLoad(IServiceProvider)

Called by the workflow runtime whenever an ActivityExecutionContext is loaded. For example, this method is called during the creation of an ActivityExecutionContext as well as every time the ActivityExecutionContext is reincarnated when a workflow instance is loaded from persistent storage.

OnActivityExecutionContextUnload(IServiceProvider)

Called by the workflow runtime whenever an ActivityExecutionContext is unloaded. For example, this method is called during completion of an ActivityExecutionContext as well as every time the ActivityExecutionContext is unloaded when a workflow instance is persisted.

OnClosed(IServiceProvider)

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

RaiseEvent(DependencyProperty, Object, EventArgs)

Raises an Event associated with the specified dependency property.

RaiseGenericEvent<T>(DependencyProperty, Object, T)

Raises the event associated with the referenced DependencyProperty.

RegisterForStatusChange(DependencyProperty, IActivityEventListener<ActivityExecutionStatusChangedEventArgs>)

Registers the specified DependencyProperty for the status change event.

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)

Writes the Activity to a Stream for persistence.

Save(Stream, IFormatter)

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

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.

TrackData(Object)

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

TrackData(String, Object)

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

Uninitialize(IServiceProvider)

When overridden in a derived class, provides un-initialization by a service provider for the activity.

UnregisterForStatusChange(DependencyProperty, IActivityEventListener<ActivityExecutionStatusChangedEventArgs>)

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

Events

Canceling

Occurs when the activity execution is canceled.

Closed

Occurs when an Activity has completed execution.

Compensating

Occurs when running a compensation method on the Activity.

Executing

Occurs when the Activity is run.

Faulting

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

StatusChanged

Occurs when the ActivityExecutionStatus of a running Activity changes.

Explicit Interface Implementations

IComponent.Disposed

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

(Inherited from DependencyObject)

Applies to