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 類別會提供工作流程單一執行個體的主機。 這是工作流程執行階段管理的實際工作流程執行個體所屬的 Proxy。 WorkflowApplication 的使用者可指示工作流程執行階段呼叫 WorkflowApplication 物件上適當的方法,以便在工作流程執行個體上執行動作。 如果要求的動作無效,就會擲回例外狀況。
使用 WorkflowApplication 可執行下列工作:
建立新的工作流程執行個體,或從執行個體存放區載入工作流程執行個體。
提供工作流程執行個體中的活動使用的擴充。
控制工作流程執行個體的執行。
繼續工作流程執行個體中的活動所使用的書籤。
保存或卸載工作流程執行個體。
接收工作流程執行個體開發週期事件的通知。
建構函式
WorkflowApplication(Activity) |
使用指定的工作流程定義,建立 WorkflowApplication 類別的新執行個體。 |
WorkflowApplication(Activity, IDictionary<String,Object>) |
建立使用指定工作流程定義及引數值的 WorkflowApplication 類別新執行個體。 |
WorkflowApplication(Activity, IDictionary<String,Object>, WorkflowIdentity) |
建立使用指定的工作流程定義和引數值以及定義識別的 WorkflowApplication 類別新執行個體。 |
WorkflowApplication(Activity, WorkflowIdentity) |
使用指定的工作流程定義和定義識別,建立 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) |