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 執行以下任務:
建立一個新的工作流程實例,或從實例庫載入一個實例。
提供工作流實例中活動使用的擴充功能。
控制工作流程實例的執行。
在工作流程實例中,恢復由活動建立的書籤。
持續存在或卸載一個工作流程實例。
會收到工作流程實例生命週期事件的通知。
建構函式
| 名稱 | Description |
|---|---|
| WorkflowApplication(Activity, IDictionary<String,Object>, WorkflowIdentity) |
建立一個新的類別實例 WorkflowApplication ,使用指定的工作流程定義值與參數值,以及定義身份。 |
| WorkflowApplication(Activity, IDictionary<String,Object>) |
建立一個新的類別實例 WorkflowApplication ,使用指定的工作流程定義和參數值。 |
| WorkflowApplication(Activity, WorkflowIdentity) |
建立一個包含指定工作流程定義與定義身份的新類別實例 WorkflowApplication 。 |
| WorkflowApplication(Activity) |
建立一個新的類別實例 WorkflowApplication ,並定義指定的工作流程。 |
屬性
| 名稱 | Description |
|---|---|
| Aborted |
當工作流程實例中止時,會被呼叫或設定 Action<T> that。 |
| Completed |
當工作流程實例完成時,會被呼叫或設定 Action<T> that。 |
| Controller |
這就有 WorkflowInstance.WorkflowInstanceControl 這個實例 WorkflowInstance。 (繼承來源 WorkflowInstance) |
| DefinitionIdentity |
取得或設定 的 WorkflowInstance定義恆等式。 (繼承來源 WorkflowInstance) |
| Extensions |
取得目前工作流程實例的擴充套件集合。 |
| HostEnvironment |
取得或設定工作流程實例參數與變數的根環境。 (繼承來源 WorkflowInstance) |
| Id |
取得目前工作流程應用程式實例的 128 位元 GUID 識別碼。 |
| Idle |
當目前工作流程實例進入閒置時,會被呼叫或設定 Action<T> that。 |
| InstanceStore |
取得或設定一個物件,提供存取目前工作流程實例的持久狀態。 |
| IsReadOnly |
會得到一個表示工作流程實例是否已被初始化的值。 (繼承來源 WorkflowInstance) |
| OnUnhandledException |
當目前工作流程實例遇到未處理的例外時,會被呼叫或設定 Func<T,TResult> that。 |
| PersistableIdle |
取得或設定當目前工作流程實例閒置且可持久化時所呼叫的代理。 |
| SupportsInstanceKeys |
會獲得一個值,表示主機是否支援與執行時實例的關聯 InstanceKeys 。 (繼承來源 WorkflowInstance) |
| SynchronizationContext |
取得或設定 用於 SynchronizationContext 排程工作流程實例。 (繼承來源 WorkflowInstance) |
| Unloaded |
當目前工作流程卸載時,會被呼叫或設定 Action<T> that。 |
| WorkflowDefinition |
取得工作流程實例的工作流程定義。 (繼承來源 WorkflowInstance) |