WorkflowApplication Class
Provides a host for a single instance of a workflow.
Assembly: System.Activities (in System.Activities.dll)
The WorkflowApplication type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | WorkflowApplication(Activity) | Creates a new instance of the WorkflowApplication class with the specified workflow definition. |
![]() | WorkflowApplication(Activity, IDictionary<String, Object>) | Creates a new instance of the WorkflowApplication class that uses the specified workflow definition and argument values. |
| Name | Description | |
|---|---|---|
![]() | Aborted | Gets or sets the Action<T> that is invoked when the workflow instance is aborted. |
![]() | Completed | Gets or sets the Action<T> that is invoked when the workflow instance completes. |
![]() | Controller | Gets the WorkflowInstance::WorkflowInstanceControl instance for this WorkflowInstance. (Inherited from WorkflowInstance.) |
![]() | Extensions | Gets the collection of extensions for the current workflow instance. |
![]() | HostEnvironment | Gets or sets the root environment for the workflow instance’s arguments and variables. (Inherited from WorkflowInstance.) |
![]() | Id | Gets the 128-bit GUID identifier of the current workflow application instance. (Overrides WorkflowInstance::Id.) |
![]() | Idle | Gets or sets the Action<T> that is invoked when the current workflow instance becomes idle. |
![]() | InstanceStore | Gets or sets an object that provides access to the persisted state of the current instance of the workflow application. |
![]() | IsReadOnly | Gets a value that indicates whether the workflow instance has been initialized. (Inherited from WorkflowInstance.) |
![]() | OnUnhandledException | Gets or sets the Func<T, TResult> that is invoked when the current workflow instance encounters an unhandled exception. |
![]() | PersistableIdle | Gets or sets the ActivityFunc that is invoked when the current workflow instance is idle and can be persisted. |
![]() | SupportsInstanceKeys | Gets a value that indicates whether the host supports the association of InstanceKeys() with a run-time instance. (Inherited from WorkflowInstance.) |
![]() | SynchronizationContext | Gets or sets the SynchronizationContext used for scheduling the workflow instance. (Inherited from WorkflowInstance.) |
![]() | Unloaded | Gets or sets the Action<T> that is invoked when the current workflow unloads. |
![]() | WorkflowDefinition | Gets the workflow definition of the workflow instance. (Inherited from WorkflowInstance.) |
| Name | Description | |
|---|---|---|
![]() | Abort() | Notifies the workflow runtime that this workflow instance should abort. |
![]() | Abort(String) | Notifies the workflow runtime that this workflow instance should abort for the specified reason. |
![]() | AddInitialInstanceValues | Specifies instance metadata values that are included with the first persistence of a new instance. |
![]() | BeginCancel(AsyncCallback, Object) | Cancels a workflow instance asynchronously using the specified AsyncCallback and user-provided state. |
![]() | BeginCancel(TimeSpan, AsyncCallback, Object) | Cancels a workflow instance asynchronously using the specified time-out interval, AsyncCallback, and user-provided state. |
![]() | BeginLoad(Guid, AsyncCallback, Object) | Loads a workflow asynchronously from an instance store using the specified instance identifier, callback method, and user-provided state. |
![]() | BeginLoad(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. |
![]() | BeginLoadRunnableInstance(AsyncCallback, Object) | Initiates an operation to load a runnable workflow instance from the InstanceStore. |
![]() | BeginLoadRunnableInstance(TimeSpan, AsyncCallback, Object) | Initiates an operation to load a runnable workflow instance from the InstanceStore using the specified time-out interval. |
![]() | BeginPersist(AsyncCallback, Object) | Persists a workflow instance to an instance store asynchronously using the specified callback method and user-provided state. |
![]() | BeginPersist(TimeSpan, AsyncCallback, Object) | Persists a workflow instance to an instance store asynchronously using the specified time-out interval, callback method, and user-provided state. |
![]() | BeginResumeBookmark(Bookmark, Object, AsyncCallback, Object) | Initiates an operation to resume a bookmark using the specified value, callback method, and state. |
![]() | BeginResumeBookmark(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. |
![]() | BeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object) | Initiates an operation to resume a bookmark using the specified value, time-out interval, callback method, and state. |
![]() | BeginResumeBookmark(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. |
![]() | BeginRun(AsyncCallback, Object) | Starts or resumes a workflow instance asynchronously using the specified callback method and user-provided state. |
![]() | BeginRun(TimeSpan, AsyncCallback, Object) | Starts or resumes a workflow instance asynchronously using the specified time-out interval, callback method, and user-provided state. |
![]() | BeginTerminate(Exception, AsyncCallback, Object) | Terminates a workflow instance asynchronously using the specified exception, callback method, and user-provided state. |
![]() | BeginTerminate(String, AsyncCallback, Object) | Terminates a workflow instance asynchronously using the specified error message, callback method, and user-provided state. |
![]() | BeginTerminate(Exception, TimeSpan, AsyncCallback, Object) | Terminates a workflow instance asynchronously using the specified exception, time-out interval, callback method, and user-provided state. |
![]() | BeginTerminate(String, TimeSpan, AsyncCallback, Object) | Terminates a workflow instance asynchronously using the specified error message, time-out interval, callback method, and user-provided state. |
![]() | BeginUnload(AsyncCallback, Object) | Persists and disposes a workflow instance asynchronously using the specified callback method and user-provided state. |
![]() | BeginUnload(TimeSpan, AsyncCallback, Object) | Persists and disposes a workflow instance asynchronously using the specified time-out interval, callback method, and user-provided state. |
![]() | Cancel() | Cancels the workflow instance. |
![]() | Cancel(TimeSpan) | Cancels the workflow instance using the specified time-out interval. |
![]() | DisposeExtensions | Calls Dispose() on all extensions that implement IDisposable. (Inherited from WorkflowInstance.) |
![]() | EndCancel | Waits for the pending asynchronous cancel operation to complete. |
![]() | EndLoad | Waits for the pending asynchronous load operation to complete. |
![]() | EndLoadRunnableInstance | Waits for the asynchronous load runnable instance operation to complete. |
![]() | EndPersist | Waits for the pending asynchronous persist operation to complete. |
![]() | EndResumeBookmark | Waits for a bookmark resume operation to complete. |
![]() | EndRun | Waits for the pending asynchronous run operation to complete. |
![]() | EndTerminate | Waits for the pending asynchronous terminate operation to complete. |
![]() | EndUnload | Waits for the pending asynchronous unload operation to complete. |
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetBookmarks() | Returns the collection of bookmarks for the workflow instance. |
![]() | GetBookmarks(TimeSpan) | Returns the collection of bookmarks for the workflow instance using the specified time-out interval. |
![]() | GetExtension<T> | Returns an extension of the specified type. (Inherited from WorkflowInstance.) |
![]() | GetExtensions<T> | Returns all extensions found for the specified type. (Inherited from WorkflowInstance.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | Initialize(Object) | Called by the host to initialize the workflow instance with the workflow run-time state. (Inherited from WorkflowInstance.) |
![]() | Initialize(IDictionary<String, Object>, IList<Handle>) | Called by the host to initialize the workflow instance with the argument values and execution properties. (Inherited from WorkflowInstance.) |
![]() | Load(Guid) | Loads the specified workflow instance into memory from an instance store. |
![]() | Load(Guid, TimeSpan) | Loads the specified workflow instance into memory from an instance store using the specified time-out interval. |
![]() | LoadRunnableInstance() | Loads a runnable workflow instance from the InstanceStore. |
![]() | LoadRunnableInstance(TimeSpan) | Loads a runnable workflow instance from the InstanceStore using the specified time-out interval. |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | OnBeginAssociateKeys | Called by the workflow runtime to notify the host that new instance keys should be associated with this instance. (Inherited from WorkflowInstance.) |
![]() | OnBeginFlushTrackingRecords | Asynchronous call to ask host to flush pending tracking records to tracking participants. (Inherited from WorkflowInstance.) |
![]() | OnBeginPersist | Asynchronous call to ask the host to persist the workflow. (Inherited from WorkflowInstance.) |
![]() | OnBeginResumeBookmark | Called by the workflow runtime to notify the host that a resume bookmark operation is beginning. (Inherited from WorkflowInstance.) |
![]() | OnDisassociateKeys | Called 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.) |
![]() | OnEndAssociateKeys | Called by the workflow runtime to notify the host that an associate keys operation is complete. (Inherited from WorkflowInstance.) |
![]() | OnEndFlushTrackingRecords | Called by the workflow runtime to notify the host when the flush tracking records operation is complete. (Inherited from WorkflowInstance.) |
![]() | OnEndPersist | Called by the workflow runtime to notify the host that a persist operation is complete. (Inherited from WorkflowInstance.) |
![]() | OnEndResumeBookmark | Called by the workflow runtime to notify the host that a resume bookmark operation is complete. (Inherited from WorkflowInstance.) |
![]() | OnNotifyPaused | Called by the workflow runtime to notify the host that the workflow instance has transitioned from the running state to the paused state. (Inherited from WorkflowInstance.) |
![]() | OnNotifyUnhandledException | Called by the workflow runtime to notify the host an unhandled exception has occurred in the workflow instance. (Inherited from WorkflowInstance.) |
![]() | OnRequestAbort | Called by the workflow runtime to notify the host that an abort operation has been requested for the workflow instance. (Inherited from WorkflowInstance.) |
![]() | Persist() | Persists a workflow instance to an instance store. |
![]() | Persist(TimeSpan) | Persists a workflow instance to an instance store using the specified time-out interval. |
![]() | RegisterExtensionManager | Called by the host to register the specified extension manager, validate that all required extensions are present, and to initialize the collection of extensions to be used. (Inherited from WorkflowInstance.) |
![]() | ResumeBookmark(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. |
![]() | ResumeBookmark(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. |
![]() | ResumeBookmark(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. |
![]() | ResumeBookmark(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. |
![]() | Run() | Begins or resumes the execution of a workflow instance. |
![]() | Run(TimeSpan) | Begins or resumes the execution of a workflow instance using the specified time-out interval. |
![]() | Terminate(Exception) | Terminates a workflow instance using the specified exception. |
![]() | Terminate(String) | Terminates a workflow instance using the specified error message. |
![]() | Terminate(Exception, TimeSpan) | Terminates a workflow instance using the specified exception and time-out interval. |
![]() | Terminate(String, TimeSpan) | Terminates a workflow instance using the specified error message and time-out interval. |
![]() | ThrowIfReadOnly | Throws an InvalidOperationException if the workflow instance has been initialized, as determined by IsReadOnly. (Inherited from WorkflowInstance.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
![]() | Unload() | Persists and unloads a workflow instance. |
![]() | Unload(TimeSpan) | Persists and unloads a workflow instance using the specified time-out interval. |
The WorkflowApplication class provides a host for a single workflow instance. It is a thread-safe 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:
Create a new workflow instance, or load a workflow instance from an instance store.
Provide extensions to be used by activities within a workflow instance.
Control the execution of a workflow instance.
Resume a bookmark created by an activity within a workflow instance.
Persist or unload a workflow instance.
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 CompletedWorkflow 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();
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
