WorkflowApplication 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为工作流的单个实例提供主机。
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使用指定的工作流定义构造实例,处理所需的工作流生命周期事件,并通过调用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 可以执行以下任务:
创建新的工作流实例,或从实例存储加载工作流实例。
提供工作流实例中的活动要使用的扩展。
控制工作流实例的执行。
恢复由工作流实例中的活动创建的书签。
保留或卸载工作流实例。
收到工作流实例生命周期事件的通知。
构造函数
| 名称 | 说明 |
|---|---|
| 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) |