WorkflowApplication 类

定义

为工作流的单个实例提供主机。

public ref class WorkflowApplication sealed : System::Activities::Hosting::WorkflowInstance
public sealed class WorkflowApplication : System.Activities.Hosting.WorkflowInstance
type WorkflowApplication = class
    inherit WorkflowInstance
Public NotInheritable Class WorkflowApplication
Inherits WorkflowInstance
继承
WorkflowApplication

示例

以下示例使用 WorkflowApplication 承载工作流。 WorkflowApplication使用指定的工作流定义构造实例,处理所需的工作流生命周期事件,并通过调用Run调用调用工作流。 工作流完成后,以下输出会显示到控制台。

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();

注解

WorkflowApplication 类为单个工作流实例提供主机。 它是由工作流运行时管理的实际工作流实例的代理。 WorkflowApplication用户可以通过对对象调用适当的方法WorkflowApplication,指示工作流运行时对工作流实例执行操作。 如果请求的操作无效,则会引发异常。

使用 WorkflowApplication 可以执行以下任务:

  1. 创建新的工作流实例,或从实例存储加载工作流实例。

  2. 提供工作流实例中的活动要使用的扩展。

  3. 控制工作流实例的执行。

  4. 恢复由工作流实例中的活动创建的书签。

  5. 保留或卸载工作流实例。

  6. 收到工作流实例生命周期事件的通知。

构造函数

名称 说明
WorkflowApplication(Activity, IDictionary<String,Object>, WorkflowIdentity)

创建使用指定工作流定义和参数值以及定义标识的类的新实例 WorkflowApplication

WorkflowApplication(Activity, IDictionary<String,Object>)

创建使用指定工作流定义和参数值的类的新实例 WorkflowApplication

WorkflowApplication(Activity, WorkflowIdentity)

使用指定的工作流定义和定义标识创建类的新实例 WorkflowApplication

WorkflowApplication(Activity)

使用指定的工作流定义创建类的新实例 WorkflowApplication

属性

名称 说明
Aborted

获取或设置 Action<T> 在中止工作流实例时调用的实例。

Completed

获取或设置 Action<T> 工作流实例完成时调用的项。

Controller

获取此WorkflowInstance.WorkflowInstanceControl实例WorkflowInstance

(继承自 WorkflowInstance)
DefinitionIdentity

获取或设置 . 的定义标识 WorkflowInstance

(继承自 WorkflowInstance)
Extensions

获取当前工作流实例的扩展集合。

HostEnvironment

获取或设置工作流实例的参数和变量的根环境。

(继承自 WorkflowInstance)
Id

获取当前工作流应用程序实例的 128 位 GUID 标识符。

Idle

获取或设置 Action<T> 在当前工作流实例空闲时调用的实例。

InstanceStore

获取或设置一个对象,该对象提供对工作流应用程序的当前实例的持久状态的访问权限。

IsReadOnly

获取一个值,该值指示是否已初始化工作流实例。

(继承自 WorkflowInstance)
OnUnhandledException

获取或设置 Func<T,TResult> 当前工作流实例遇到未经处理的异常时调用的异常。

PersistableIdle

获取或设置在当前工作流实例处于空闲状态且可持久保存时调用的委托。

SupportsInstanceKeys

获取一个值,该值指示主机是否支持与运行时实例的关联 InstanceKeys

(继承自 WorkflowInstance)
SynchronizationContext

获取或设置 SynchronizationContext 用于计划工作流实例。

(继承自 WorkflowInstance)
Unloaded

获取或设置 Action<T> 在当前工作流卸载时调用的项。

WorkflowDefinition

获取工作流实例的工作流定义。

(继承自 WorkflowInstance)

方法

名称 说明
Abort()

通知工作流运行时此工作流实例应中止。

Abort(String)

通知工作流运行时,此工作流实例应出于指定原因中止。

AddInitialInstanceValues(IDictionary<XName,Object>)

指定包含在新实例的第一个持久性中的实例元数据值。

BeginCancel(AsyncCallback, Object)

使用指定的 AsyncCallback 和用户提供的状态异步取消工作流实例。

BeginCancel(TimeSpan, AsyncCallback, Object)

使用指定的超时间隔 AsyncCallback和用户提供的状态异步取消工作流实例。

BeginCreateDefaultInstanceOwner(InstanceStore, WorkflowIdentity, WorkflowIdentityFilter, AsyncCallback, Object)

使用具有指定实例存储、定义标识、标识筛选器、回调和状态的 IAsyncResult 异步设计模式异步创建默认实例所有者。

BeginCreateDefaultInstanceOwner(InstanceStore, WorkflowIdentity, WorkflowIdentityFilter, TimeSpan, AsyncCallback, Object)

使用具有指定实例存储、定义标识、标识筛选器、超时间隔、回调和状态的 IAsyncResult 异步设计模式异步创建默认实例所有者。

BeginDeleteDefaultInstanceOwner(InstanceStore, AsyncCallback, Object)

使用具有指定实例存储、回调和状态的 IAsyncResult 异步设计模式异步删除默认实例所有者。

BeginDeleteDefaultInstanceOwner(InstanceStore, TimeSpan, AsyncCallback, Object)

使用具有指定实例存储、超时间隔、回调和状态的 IAsyncResult 异步设计模式异步删除默认实例所有者。

BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

由工作流运行时调用,开始以异步方式发送挂起的跟踪记录以跟踪参与者。

(继承自 WorkflowInstance)
BeginGetInstance(Guid, InstanceStore, AsyncCallback, Object)

使用具有指定实例标识符、实例存储、回调和状态的 IAsyncResult 异步设计模式异步检索实例所有者。

BeginGetInstance(Guid, InstanceStore, TimeSpan, AsyncCallback, Object)

使用具有指定实例标识符、实例存储、超时间隔、回调和状态的 IAsyncResult 异步设计模式异步检索实例所有者。

BeginGetRunnableInstance(InstanceStore, AsyncCallback, Object)

使用具有指定实例存储、回调和状态的 IAsyncResult 异步设计模式以异步方式检索可运行实例所有者。

BeginGetRunnableInstance(InstanceStore, TimeSpan, AsyncCallback, Object)

使用具有指定实例存储、超时间隔、回调和状态的 IAsyncResult 异步设计模式以异步方式检索可运行实例所有者。

BeginLoad(Guid, AsyncCallback, Object)

使用指定的实例标识符、回调方法和用户提供的状态从实例存储中异步加载工作流。

BeginLoad(Guid, TimeSpan, AsyncCallback, Object)

使用指定的实例标识符、超时期限、回调方法和用户提供的状态从实例存储异步加载工作流。

BeginLoad(WorkflowApplicationInstance, AsyncCallback, Object)

使用具有指定实例、回调和状态的 IAsyncResult 异步设计模式从实例存储中异步加载工作流。

BeginLoad(WorkflowApplicationInstance, DynamicUpdateMap, AsyncCallback, Object)

使用具有指定实例、更新映射、回调和状态的 IAsyncResult 异步设计模式从实例存储中异步加载工作流。

BeginLoad(WorkflowApplicationInstance, DynamicUpdateMap, TimeSpan, AsyncCallback, Object)

使用具有指定实例、更新映射、超时间隔、回调和状态的 IAsyncResult 异步设计模式从实例存储中异步加载工作流。

BeginLoad(WorkflowApplicationInstance, TimeSpan, AsyncCallback, Object)

使用 IAsyncResult 具有指定实例的异步设计模式、超时间隔、回调和状态从实例存储异步加载工作流。

BeginLoadRunnableInstance(AsyncCallback, Object)

启动从中 InstanceStore加载可运行工作流实例的操作。

BeginLoadRunnableInstance(TimeSpan, AsyncCallback, Object)

启动一个操作,以使用指定的超时间隔从 InstanceStore 可运行工作流实例加载。

BeginPersist(AsyncCallback, Object)

使用指定的回调方法和用户提供的状态将工作流实例异步保存到实例存储中。

BeginPersist(TimeSpan, AsyncCallback, Object)

使用指定的超时间隔、回调方法和用户提供的状态以异步方式将工作流实例保存到实例存储中。

BeginResumeBookmark(Bookmark, Object, AsyncCallback, Object)

启动操作,以使用指定的值、回调方法和状态恢复书签。

BeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object)

启动操作,以使用指定的值、超时间隔、回调方法和状态恢复书签。

BeginResumeBookmark(String, Object, AsyncCallback, Object)

启动异步操作,以使用指定的值、回调方法和状态恢复具有指定名称的书签。 要恢复的书签以前由工作流实例中的活动创建。

BeginResumeBookmark(String, Object, TimeSpan, AsyncCallback, Object)

启动异步操作,以使用指定的值、超时间隔、回调方法和状态恢复具有指定名称的书签。 要恢复的书签以前由工作流实例中的活动创建。

BeginRun(AsyncCallback, Object)

使用指定的回调方法和用户提供的状态异步启动或恢复工作流实例。

BeginRun(TimeSpan, AsyncCallback, Object)

使用指定的超时间隔、回调方法和用户提供的状态异步启动或恢复工作流实例。

BeginTerminate(Exception, AsyncCallback, Object)

使用指定的异常、回调方法和用户提供的状态异步终止工作流实例。

BeginTerminate(Exception, TimeSpan, AsyncCallback, Object)

使用指定的异常、超时间隔、回调方法和用户提供的状态异步终止工作流实例。

BeginTerminate(String, AsyncCallback, Object)

使用指定的错误消息、回调方法和用户提供的状态异步终止工作流实例。

BeginTerminate(String, TimeSpan, AsyncCallback, Object)

使用指定的错误消息、超时间隔、回调方法和用户提供的状态异步终止工作流实例。

BeginUnload(AsyncCallback, Object)

使用指定的回调方法和用户提供的状态异步保存和释放工作流实例。

BeginUnload(TimeSpan, AsyncCallback, Object)

使用指定的超时间隔、回调方法和用户提供的状态异步保存和释放工作流实例。

Cancel()

取消工作流实例。

Cancel(TimeSpan)

使用指定的超时间隔取消工作流实例。

CreateDefaultInstanceOwner(InstanceStore, WorkflowIdentity, WorkflowIdentityFilter, TimeSpan)

使用指定的实例存储、定义标识和标识筛选器和超时间隔为工作流创建默认实例所有者。

CreateDefaultInstanceOwner(InstanceStore, WorkflowIdentity, WorkflowIdentityFilter)

使用指定的实例存储、定义标识和标识筛选器为工作流创建默认实例所有者。

DeleteDefaultInstanceOwner(InstanceStore, TimeSpan)

删除具有指定实例存储和超时间隔的工作流的默认实例所有者。

DeleteDefaultInstanceOwner(InstanceStore)

删除具有指定实例存储的工作流的默认实例所有者。

DisposeExtensions()

对实现Dispose()的所有扩展的调用IDisposable

(继承自 WorkflowInstance)
EndCancel(IAsyncResult)

等待挂起的异步取消操作完成。

EndCreateDefaultInstanceOwner(IAsyncResult)

等待创建默认实例所有者完成。

EndDeleteDefaultInstanceOwner(IAsyncResult)

等待删除默认实例所有者完成。

EndFlushTrackingRecords(IAsyncResult)

由工作流运行时调用以结束跟踪操作。

(继承自 WorkflowInstance)
EndGetInstance(IAsyncResult)

等待实例检索完成。

EndGetRunnableInstance(IAsyncResult)

等待可运行实例操作的异步检索完成。

EndLoad(IAsyncResult)

等待挂起的异步加载操作完成。

EndLoadRunnableInstance(IAsyncResult)

等待异步加载可运行实例操作完成。

EndPersist(IAsyncResult)

等待挂起的异步持久化操作完成。

EndResumeBookmark(IAsyncResult)

等待书签恢复操作完成。

EndRun(IAsyncResult)

等待挂起的异步运行操作完成。

EndTerminate(IAsyncResult)

等待挂起的异步终止操作完成。

EndUnload(IAsyncResult)

等待挂起的异步卸载操作完成。

Equals(Object)

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

(继承自 Object)
FlushTrackingRecords(TimeSpan)

由工作流运行时调用,以发送挂起的跟踪记录来跟踪参与者。

(继承自 WorkflowInstance)
GetBookmarks()

返回工作流实例的书签集合。

GetBookmarks(TimeSpan)

使用指定的超时间隔返回工作流实例的书签集合。

GetExtension<T>()

返回指定类型的扩展。

(继承自 WorkflowInstance)
GetExtensions<T>()

返回为指定类型找到的所有扩展。

(继承自 WorkflowInstance)
GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetInstance(Guid, InstanceStore, TimeSpan)

使用指定的实例标识符、实例存储和超时间隔检索工作流实例。

GetInstance(Guid, InstanceStore)

使用指定的实例标识符和实例存储检索工作流实例。

GetRunnableInstance(InstanceStore, TimeSpan)

检索具有指定实例存储和超时间隔的工作流的可运行实例。

GetRunnableInstance(InstanceStore)

检索具有指定实例存储的工作流的可运行实例。

GetType()

获取当前实例的 Type

(继承自 Object)
Initialize(IDictionary<String,Object>, IList<Handle>)

由主机调用,以使用参数值和执行属性初始化工作流实例。

(继承自 WorkflowInstance)
Initialize(Object, DynamicUpdateMap)

由主机调用,以使用工作流运行时状态和更新映射初始化工作流实例。

(继承自 WorkflowInstance)
Initialize(Object)

由主机调用,以使用工作流运行时状态初始化工作流实例。

(继承自 WorkflowInstance)
Load(Guid, TimeSpan)

使用指定的超时间隔将指定的工作流实例加载到实例存储中的内存中。

Load(Guid)

将指定的工作流实例从实例存储加载到内存中。

Load(WorkflowApplicationInstance, DynamicUpdateMap, TimeSpan)

使用指定的实例、更新映射和超时间隔从实例存储加载工作流实例。

Load(WorkflowApplicationInstance, DynamicUpdateMap)

使用指定的实例和更新映射从实例存储加载工作流实例。

Load(WorkflowApplicationInstance, TimeSpan)

使用指定的实例和超时间隔从实例存储加载工作流实例。

Load(WorkflowApplicationInstance)

从具有指定实例的实例存储加载工作流实例。

LoadRunnableInstance()

从 <a0/> 加载可运行的工作流实例。

LoadRunnableInstance(TimeSpan)

使用指定的超时间隔从 InstanceStore 可运行工作流实例加载。

MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object)

由工作流运行时调用以通知主机应与此实例关联的新实例密钥。

(继承自 WorkflowInstance)
OnBeginFlushTrackingRecords(AsyncCallback, Object)

异步调用,要求主机刷新挂起的跟踪记录以跟踪参与者。

(继承自 WorkflowInstance)
OnBeginPersist(AsyncCallback, Object)

异步调用以要求主机保留工作流。

(继承自 WorkflowInstance)
OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object)

由工作流运行时调用,以通知主机恢复书签操作已开始。

(继承自 WorkflowInstance)
OnDisassociateKeys(ICollection<InstanceKey>)

由工作流运行时调用以通知主机,某些实例密钥集不应再与此实例关联。

(继承自 WorkflowInstance)
OnEndAssociateKeys(IAsyncResult)

由工作流运行时调用,以通知主机关联密钥操作已完成。

(继承自 WorkflowInstance)
OnEndFlushTrackingRecords(IAsyncResult)

工作流运行时调用,以在刷新跟踪记录操作完成时通知主机。

(继承自 WorkflowInstance)
OnEndPersist(IAsyncResult)

由工作流运行时调用,以通知主机持久操作已完成。

(继承自 WorkflowInstance)
OnEndResumeBookmark(IAsyncResult)

由工作流运行时调用,以通知主机恢复书签操作已完成。

(继承自 WorkflowInstance)
OnNotifyPaused()

由工作流运行时调用,以通知主机工作流实例已从运行状态转换到暂停状态。

(继承自 WorkflowInstance)
OnNotifyUnhandledException(Exception, Activity, String)

工作流运行时调用以通知主机工作流实例中发生了未经处理的异常。

(继承自 WorkflowInstance)
OnRequestAbort(Exception)

由工作流运行时调用,以通知主机已为工作流实例请求中止操作。

(继承自 WorkflowInstance)
Persist()

将工作流实例保存到实例存储中。

Persist(TimeSpan)

使用指定的超时间隔将工作流实例保存到实例存储中。

RegisterExtensionManager(WorkflowInstanceExtensionManager)

由主机调用以注册指定的扩展管理器,验证是否存在所有必需的扩展,并初始化要使用的扩展集合。

(继承自 WorkflowInstance)
ResumeBookmark(Bookmark, Object, TimeSpan)

使用指定的值和超时间隔启动操作以恢复指定的书签。 要恢复的书签以前由工作流实例中的活动创建。

ResumeBookmark(Bookmark, Object)

使用指定的值启动操作以恢复指定的书签。 要恢复的书签以前由工作流实例中的活动创建。

ResumeBookmark(String, Object, TimeSpan)

使用指定的值和超时间隔启动操作以恢复具有指定名称的书签。 要恢复的书签以前由工作流实例中的活动创建。

ResumeBookmark(String, Object)

使用指定的值启动操作以恢复具有指定名称的书签。 要恢复的书签以前由工作流实例中的活动创建。

Run()

开始或恢复工作流实例的执行。

Run(TimeSpan)

使用指定的超时间隔开始或恢复工作流实例的执行。

Terminate(Exception, TimeSpan)

使用指定的异常和超时间隔终止工作流实例。

Terminate(Exception)

使用指定的异常终止工作流实例。

Terminate(String, TimeSpan)

使用指定的错误消息和超时间隔终止工作流实例。

Terminate(String)

使用指定的错误消息终止工作流实例。

ThrowIfReadOnly()

InvalidOperationException如果工作流实例已初始化,则引发该实例,由该实例确定IsReadOnly

(继承自 WorkflowInstance)
ToString()

返回一个表示当前对象的字符串。

(继承自 Object)
Unload()

持久保存和卸载工作流实例。

Unload(TimeSpan)

使用指定的超时间隔持久保存和卸载工作流实例。

适用于