Export (0) Print
Expand All

WorkflowApplication Class

Provides a host for a single instance of a workflow.

Namespace:  System.Activities
Assembly:  System.Activities (in System.Activities.dll)

public sealed class WorkflowApplication : WorkflowInstance

The WorkflowApplication type exposes the following members.

  NameDescription
Public methodWorkflowApplication(Activity)Creates a new instance of the WorkflowApplication class with the specified workflow definition.
Public methodWorkflowApplication(Activity, WorkflowIdentity)Creates a new instance of the WorkflowApplication class with the specified workflow definition and definition identity.
Public methodWorkflowApplication(Activity, IDictionary<String, Object>)Creates a new instance of the WorkflowApplication class that uses the specified workflow definition and argument values.
Public methodWorkflowApplication(Activity, IDictionary<String, Object>, WorkflowIdentity)Creates a new instance of the WorkflowApplication class that uses the specified workflow definition and argument values, and definition identity.
Top

  NameDescription
Public propertyAbortedGets or sets the Action<T> that is invoked when the workflow instance is aborted.
Public propertyCompletedGets or sets the Action<T> that is invoked when the workflow instance completes.
Public propertyDefinitionIdentityGets or sets the definition identity of WorkflowInstance. (Inherited from WorkflowInstance.)
Public propertyExtensionsGets the collection of extensions for the current workflow instance.
Public propertyHostEnvironmentGets or sets the root environment for the workflow instance’s arguments and variables. (Inherited from WorkflowInstance.)
Public propertyIdGets the 128-bit GUID identifier of the current workflow application instance. (Overrides WorkflowInstance.Id.)
Public propertyIdleGets or sets the Action<T> that is invoked when the current workflow instance becomes idle.
Public propertyInstanceStoreGets or sets an object that provides access to the persisted state of the current instance of the workflow application.
Public propertyOnUnhandledExceptionGets or sets the Func<T, TResult> that is invoked when the current workflow instance encounters an unhandled exception.
Public propertyPersistableIdleGets or sets the ActivityFunc that is invoked when the current workflow instance is idle and can be persisted.
Protected propertySupportsInstanceKeysGets a value that indicates whether the host supports the association of InstanceKeys with a run-time instance. (Inherited from WorkflowInstance.)
Public propertySynchronizationContextGets or sets the SynchronizationContext used for scheduling the workflow instance. (Inherited from WorkflowInstance.)
Public propertyUnloadedGets or sets the Action<T> that is invoked when the current workflow unloads.
Public propertyWorkflowDefinitionGets the workflow definition of the workflow instance. (Inherited from WorkflowInstance.)
Top

  NameDescription
Public methodAbort()Notifies the workflow runtime that this workflow instance should abort.
Public methodAbort(String)Notifies the workflow runtime that this workflow instance should abort for the specified reason.
Public methodAddInitialInstanceValuesSpecifies instance metadata values that are included with the first persistence of a new instance.
Public methodBeginCancel(AsyncCallback, Object)Cancels a workflow instance asynchronously using the specified AsyncCallback and user-provided state.
Public methodBeginCancel(TimeSpan, AsyncCallback, Object)Cancels a workflow instance asynchronously using the specified time-out interval, AsyncCallback, and user-provided state.
Public methodStatic memberBeginCreateDefaultInstanceOwner(InstanceStore, WorkflowIdentity, WorkflowIdentityFilter, AsyncCallback, Object)Creates a default instance owner asynchronously using the IAsyncResult asynchronous design pattern with specified instance store, definition identity, identity filter, callback and state.
Public methodStatic memberBeginCreateDefaultInstanceOwner(InstanceStore, WorkflowIdentity, WorkflowIdentityFilter, TimeSpan, AsyncCallback, Object)Creates a default instance owner asynchronously using the IAsyncResult asynchronous design pattern with specified instance store, definition identity, identity filter, timeout interval, callback and state.
Public methodStatic memberBeginDeleteDefaultInstanceOwner(InstanceStore, AsyncCallback, Object)Deletes a default instance owner asynchronously using the IAsyncResult asynchronous design pattern with specified instance store, callback, and state.
Public methodStatic memberBeginDeleteDefaultInstanceOwner(InstanceStore, TimeSpan, AsyncCallback, Object)Deletes a default instance owner asynchronously using the IAsyncResult asynchronous design pattern with specified instance store, timeout interval, callback, and state.
Public methodStatic memberBeginGetInstance(Guid, InstanceStore, AsyncCallback, Object)Retrieves an instance owner asynchronously using the IAsyncResult asynchronous design pattern with specified instance identifier, instance store, callback, and state.
Public methodStatic memberBeginGetInstance(Guid, InstanceStore, TimeSpan, AsyncCallback, Object)Retrieves an instance owner asynchronously using the IAsyncResult asynchronous design pattern with specified instance identifier, instance store, timeout interval, callback, and state.
Public methodStatic memberBeginGetRunnableInstance(InstanceStore, AsyncCallback, Object)Retrieves a runnable instance owner asynchronously using the IAsyncResult asynchronous design pattern with specified instance store, callback, and state.
Public methodStatic memberBeginGetRunnableInstance(InstanceStore, TimeSpan, AsyncCallback, Object)Retrieves a runnable instance owner asynchronously using the IAsyncResult asynchronous design pattern with specified instance store, timeout interval, callback, and state.
Public methodBeginLoad(Guid, AsyncCallback, Object)Loads a workflow asynchronously from an instance store using the specified instance identifier, callback method, and user-provided state.
Public methodBeginLoad(WorkflowApplicationInstance, AsyncCallback, Object)Loads a workflow asynchronously from an instance store using the IAsyncResult asynchronous design pattern with specified instance, callback and state.
Public methodBeginLoad(Guid, TimeSpan, AsyncCallback, Object)Loads a workflow asynchronously from an instance store using the specified instance identifier, timeout period, callback method, and user-provided state.
Public methodBeginLoad(WorkflowApplicationInstance, DynamicUpdateMap, AsyncCallback, Object)Loads a workflow asynchronously from an instance store using the IAsyncResult asynchronous design pattern with specified instance, update map, callback and state.
Public methodBeginLoad(WorkflowApplicationInstance, TimeSpan, AsyncCallback, Object)Loads a workflow asynchronously from an instance store using the IAsyncResult asynchronous design pattern with specified instance, timeout interval, callback and state.
Public methodBeginLoad(WorkflowApplicationInstance, DynamicUpdateMap, TimeSpan, AsyncCallback, Object)Loads a workflow asynchronously from an instance store using the IAsyncResult asynchronous design pattern with specified instance, update map, timeout interval, callback and state.
Public methodBeginLoadRunnableInstance(AsyncCallback, Object)Initiates an operation to load a runnable workflow instance from the InstanceStore.
Public methodBeginLoadRunnableInstance(TimeSpan, AsyncCallback, Object)Initiates an operation to load a runnable workflow instance from the InstanceStore using the specified time-out interval.
Public methodBeginPersist(AsyncCallback, Object)Persists a workflow instance to an instance store asynchronously using the specified callback method and user-provided state.
Public methodBeginPersist(TimeSpan, AsyncCallback, Object)Persists a workflow instance to an instance store asynchronously using the specified time-out interval, callback method, and user-provided state.
Public methodBeginResumeBookmark(Bookmark, Object, AsyncCallback, Object)Initiates an operation to resume a bookmark using the specified value, callback method, and state.
Public methodBeginResumeBookmark(String, Object, AsyncCallback, Object)Initiates an asynchronous operation to resume the bookmark with the specified name, using the specified value, callback method, and state. The bookmark to be resumed is previously created by an activity within the workflow instance.
Public methodBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object)Initiates an operation to resume a bookmark using the specified value, time-out interval, callback method, and state.
Public methodBeginResumeBookmark(String, Object, TimeSpan, AsyncCallback, Object)Initiates an asynchronous operation to resume the bookmark with the specified name, using the specified value, time-out interval, callback method, and state. The bookmark to be resumed is previously created by an activity within the workflow instance.
Public methodBeginRun(AsyncCallback, Object)Starts or resumes a workflow instance asynchronously using the specified callback method and user-provided state.
Public methodBeginRun(TimeSpan, AsyncCallback, Object)Starts or resumes a workflow instance asynchronously using the specified time-out interval, callback method, and user-provided state.
Public methodBeginTerminate(Exception, AsyncCallback, Object)Terminates a workflow instance asynchronously using the specified exception, callback method, and user-provided state.
Public methodBeginTerminate(String, AsyncCallback, Object)Terminates a workflow instance asynchronously using the specified error message, callback method, and user-provided state.
Public methodBeginTerminate(Exception, TimeSpan, AsyncCallback, Object)Terminates a workflow instance asynchronously using the specified exception, time-out interval, callback method, and user-provided state.
Public methodBeginTerminate(String, TimeSpan, AsyncCallback, Object)Terminates a workflow instance asynchronously using the specified error message, time-out interval, callback method, and user-provided state.
Public methodBeginUnload(AsyncCallback, Object)Persists and disposes a workflow instance asynchronously using the specified callback method and user-provided state.
Public methodBeginUnload(TimeSpan, AsyncCallback, Object)Persists and disposes a workflow instance asynchronously using the specified time-out interval, callback method, and user-provided state.
Public methodCancel()Cancels the workflow instance.
Public methodCancel(TimeSpan)Cancels the workflow instance using the specified time-out interval.
Public methodStatic memberCreateDefaultInstanceOwner(InstanceStore, WorkflowIdentity, WorkflowIdentityFilter)Creates a default instance owner for the workflow using specified instance store, definition identity, and identity filter.
Public methodStatic memberCreateDefaultInstanceOwner(InstanceStore, WorkflowIdentity, WorkflowIdentityFilter, TimeSpan)Creates a default instance owner for the workflow using specified instance store, definition identity, and identity filter and timeout interval.
Public methodStatic memberDeleteDefaultInstanceOwner(InstanceStore)Deletes a default instance owner for the workflow with specified instance store.
Public methodStatic memberDeleteDefaultInstanceOwner(InstanceStore, TimeSpan)Deletes a default instance owner for the workflow with specified instance store and timeout interval..
Public methodEndCancelWaits for the pending asynchronous cancel operation to complete.
Public methodStatic memberEndCreateDefaultInstanceOwnerWaits for the creation of default instance owner to complete.
Public methodStatic memberEndDeleteDefaultInstanceOwnerWaits for the deletion of default instance owner to complete.
Public methodStatic memberEndGetInstanceWaits for the instance retrieval to complete.
Public methodStatic memberEndGetRunnableInstanceWaits for the asynchronous retrieval of runnable instance operation to complete.
Public methodEndLoadWaits for the pending asynchronous load operation to complete.
Public methodEndLoadRunnableInstanceWaits for the asynchronous load runnable instance operation to complete.
Public methodEndPersistWaits for the pending asynchronous persist operation to complete.
Public methodEndResumeBookmarkWaits for a bookmark resume operation to complete.
Public methodEndRunWaits for the pending asynchronous run operation to complete.
Public methodEndTerminateWaits for the pending asynchronous terminate operation to complete.
Public methodEndUnloadWaits for the pending asynchronous unload operation to complete.
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public methodGetBookmarks()Returns the collection of bookmarks for the workflow instance.
Public methodGetBookmarks(TimeSpan)Returns the collection of bookmarks for the workflow instance using the specified time-out interval.
Protected methodGetExtension<T>Returns an extension of the specified type. (Inherited from WorkflowInstance.)
Protected methodGetExtensions<T>Returns all extensions found for the specified type. (Inherited from WorkflowInstance.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodStatic memberGetInstance(Guid, InstanceStore)Retrieves the workflow instance using specified instance identifier and instance store.
Public methodStatic memberGetInstance(Guid, InstanceStore, TimeSpan)Retrieves the workflow instance using specified instance identifier, instance store and timeout interval.
Public methodStatic memberGetRunnableInstance(InstanceStore)Retrieves the runnable instance of the workflow with specified instance store.
Public methodStatic memberGetRunnableInstance(InstanceStore, TimeSpan)Retrieves the runnable instance of the workflow with specified instance store and timeout interval.
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodLoad(Guid)Loads the specified workflow instance into memory from an instance store.
Public methodLoad(WorkflowApplicationInstance)Loads a workflow instance from an instance store with specified instance.
Public methodLoad(Guid, TimeSpan)Loads the specified workflow instance into memory from an instance store using the specified time-out interval.
Public methodLoad(WorkflowApplicationInstance, DynamicUpdateMap)Loads a workflow instance from an instance store with specified instance and update map.
Public methodLoad(WorkflowApplicationInstance, TimeSpan)Loads a workflow instance from an instance store with specified instance and timeout interval.
Public methodLoad(WorkflowApplicationInstance, DynamicUpdateMap, TimeSpan)Loads a workflow instance from an instance store with specified instance, update map and timeout interval.
Public methodLoadRunnableInstance()Loads a runnable workflow instance from the InstanceStore.
Public methodLoadRunnableInstance(TimeSpan)Loads a runnable workflow instance from the InstanceStore using the specified time-out interval.
Protected methodOnBeginAssociateKeysCalled by the workflow runtime to notify the host that new instance keys should be associated with this instance. (Inherited from WorkflowInstance.)
Protected methodOnBeginPersistAsynchronous call to ask the host to persist the workflow. (Inherited from WorkflowInstance.)
Protected methodOnBeginResumeBookmarkCalled by the workflow runtime to notify the host that a resume bookmark operation is beginning. (Inherited from WorkflowInstance.)
Protected methodOnDisassociateKeysCalled by the workflow runtime to notify the host that a certain set of instance keys should no longer be associated with this instance. (Inherited from WorkflowInstance.)
Protected methodOnEndAssociateKeysCalled by the workflow runtime to notify the host that an associate keys operation is complete. (Inherited from WorkflowInstance.)
Protected methodOnEndPersistCalled by the workflow runtime to notify the host that a persist operation is complete. (Inherited from WorkflowInstance.)
Protected methodOnEndResumeBookmarkCalled by the workflow runtime to notify the host that a resume bookmark operation is complete. (Inherited from WorkflowInstance.)
Protected methodOnRequestAbortCalled by the workflow runtime to notify the host that an abort operation has been requested for the workflow instance. (Inherited from WorkflowInstance.)
Public methodPersist()Persists a workflow instance to an instance store.
Public methodPersist(TimeSpan)Persists a workflow instance to an instance store using the specified time-out interval.
Public methodResumeBookmark(Bookmark, Object)Initiates an operation to resume the specified bookmark, using the specified value. The bookmark to be resumed is previously created by an activity within the workflow instance.
Public methodResumeBookmark(String, Object)Initiates an operation to resume the bookmark with the specified name, using the specified value. The bookmark to be resumed is previously created by an activity within the workflow instance.
Public methodResumeBookmark(Bookmark, Object, TimeSpan)Initiates an operation to resume the specified bookmark, using the specified value and time-out interval. The bookmark to be resumed is previously created by an activity within the workflow instance.
Public methodResumeBookmark(String, Object, TimeSpan)Initiates an operation to resume the bookmark with the specified name, using the specified value and time-out interval. The bookmark to be resumed is previously created by an activity within the workflow instance.
Public methodRun()Begins or resumes the execution of a workflow instance.
Public methodRun(TimeSpan)Begins or resumes the execution of a workflow instance using the specified time-out interval.
Public methodTerminate(Exception)Terminates a workflow instance using the specified exception.
Public methodTerminate(String)Terminates a workflow instance using the specified error message.
Public methodTerminate(Exception, TimeSpan)Terminates a workflow instance using the specified exception and time-out interval.
Public methodTerminate(String, TimeSpan)Terminates a workflow instance using the specified error message and time-out interval.
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Public methodUnload()Persists and unloads a workflow instance.
Public methodUnload(TimeSpan)Persists and unloads a workflow instance using the specified time-out interval.
Top

The WorkflowApplication class provides a host for a single workflow instance. It is a proxy to the actual workflow instance that is managed by the workflow runtime. Users of WorkflowApplication can instruct the workflow runtime to perform actions on a workflow instance by calling the appropriate methods on a WorkflowApplication object. If a requested action is not valid, an exception is thrown.

Using WorkflowApplication you can perform the following tasks:

  1. Create a new workflow instance, or load a workflow instance from an instance store.

  2. Provide extensions to be used by activities within a workflow instance.

  3. Control the execution of a workflow instance.

  4. Resume a bookmark created by an activity within a workflow instance.

  5. Persist or unload a workflow instance.

  6. Be notified of workflow instance lifecycle events.

The following example hosts a workflow using WorkflowApplication. A WorkflowApplication instance is constructed using the specified workflow definition, the desired workflow lifecycle events are handled, and the workflow is invoked with a call to Run. When the workflow is completed, the following output is displayed to the console.

Starting the workflow. 
Workflow 593976e8-558d-4989-94d6-50a14b34fd7b Idle. 
Ending the workflow. 
Workflow 593976e8-558d-4989-94d6-50a14b34fd7b Completed
Workflow 593976e8-558d-4989-94d6-50a14b34fd7b Unloaded. 
Activity wf = new Sequence
{
    Activities =
     {
         new WriteLine
         {
             Text = "Starting the workflow."
         },
         new Delay
         {
             Duration = TimeSpan.FromSeconds(5)
         },
         new WriteLine
         {
             Text = "Ending the workflow."
         }
     }
};

// Create a WorkflowApplication instance.
WorkflowApplication wfApp = new WorkflowApplication(wf);

// Subscribe to any desired workflow lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
    if (e.CompletionState == ActivityInstanceState.Faulted)
    {
        Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
        Console.WriteLine("Exception: {0}\n{1}",
            e.TerminationException.GetType().FullName,
            e.TerminationException.Message);
    }
    else if (e.CompletionState == ActivityInstanceState.Canceled)
    {
        Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
    }
    else
    {
        Console.WriteLine("Workflow {0} Completed.", e.InstanceId);

        // Outputs can be retrieved from the Outputs dictionary, 
        // keyed by argument name. 
        // Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
    }
};

wfApp.Aborted = delegate(WorkflowApplicationAbortedEventArgs e)
{
    // Display the exception that caused the workflow 
    // to abort.
    Console.WriteLine("Workflow {0} Aborted.", e.InstanceId);
    Console.WriteLine("Exception: {0}\n{1}",
        e.Reason.GetType().FullName,
        e.Reason.Message);
};

wfApp.Idle = delegate(WorkflowApplicationIdleEventArgs e)
{
    // Perform any processing that should occur 
    // when a workflow goes idle. If the workflow can persist, 
    // both Idle and PersistableIdle are called in that order.
    Console.WriteLine("Workflow {0} Idle.", e.InstanceId);
};

wfApp.PersistableIdle = delegate(WorkflowApplicationIdleEventArgs e)
{
    // Instruct the runtime to persist and unload the workflow 
    return PersistableIdleAction.Unload;
};

wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
    Console.WriteLine("Workflow {0} Unloaded.", e.InstanceId);
};

wfApp.OnUnhandledException = delegate(WorkflowApplicationUnhandledExceptionEventArgs e)
{
    // Display the unhandled exception.
    Console.WriteLine("OnUnhandledException in Workflow {0}\n{1}",
        e.InstanceId, e.UnhandledException.Message);

    Console.WriteLine("ExceptionSource: {0} - {1}",
        e.ExceptionSource.DisplayName, e.ExceptionSourceInstanceId);

    // Instruct the runtime to terminate the workflow. 
    // Other choices are Abort and Cancel 
    return UnhandledExceptionAction.Terminate;
};

// Run the workflow.
wfApp.Run();

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Supported in: 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft