StateMachineWorkflowActivity 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
警告
The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*
做為狀態機器工作流程的根容器。 包含事件驅動的活動和狀態。
public ref class StateMachineWorkflowActivity : System::Workflow::Activities::StateActivity
[System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))]
public class StateMachineWorkflowActivity : System.Workflow.Activities.StateActivity
[System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))]
[System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public class StateMachineWorkflowActivity : System.Workflow.Activities.StateActivity
[<System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))>]
type StateMachineWorkflowActivity = class
inherit StateActivity
[<System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))>]
[<System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")>]
type StateMachineWorkflowActivity = class
inherit StateActivity
Public Class StateMachineWorkflowActivity
Inherits StateActivity
- 繼承
- 屬性
範例
下列程式碼範例示範如何建立 StateMachineWorkflowActivity 類別的新執行個體,並用它實作可在三個狀態之間轉換的基本狀態機器。 這個程式碼範例是 StateMachineWorkflow.cs 檔案中<SimpleStateMachineWorkflow SDK>範例的一部分。 如需詳細資訊,請參閱 簡單狀態機器。
this.WhileLoop = new System.Workflow.Activities.WhileActivity();
this.Parallel = new System.Workflow.Activities.ParallelActivity();
this.Sequence1 = new System.Workflow.Activities.SequenceActivity();
this.Sequence2 = new System.Workflow.Activities.SequenceActivity();
this.ConsoleMessage1 = new System.Workflow.Activities.CodeActivity();
this.ConsoleMessage2 = new System.Workflow.Activities.CodeActivity();
//
// WhileLoop
//
this.WhileLoop.Activities.Add(this.Parallel);
codecondition1.Condition += new System.EventHandler<System.Workflow.Activities.ConditionalEventArgs>(this.WhileCondition);
this.WhileLoop.Condition = codecondition1;
this.WhileLoop.Name = "WhileLoop";
//
// Parallel
//
this.Parallel.Activities.Add(this.Sequence1);
this.Parallel.Activities.Add(this.Sequence2);
this.Parallel.Name = "Parallel";
Me.WhileLoop = New System.Workflow.Activities.WhileActivity()
Me.Parallel = New System.Workflow.Activities.ParallelActivity()
Me.Sequence1 = New System.Workflow.Activities.SequenceActivity()
Me.Sequence2 = New System.Workflow.Activities.SequenceActivity()
Me.ConsoleMessage1 = New System.Workflow.Activities.CodeActivity()
Me.ConsoleMessage2 = New System.Workflow.Activities.CodeActivity()
'
' WhileLoop
'
Me.WhileLoop.Activities.Add(Me.Parallel)
AddHandler codecondition1.Condition, AddressOf Me.WhileCondition
Me.WhileLoop.Condition = codecondition1
Me.WhileLoop.Name = "WhileLoop"
'
' Parallel
'
Me.Parallel.Activities.Add(Me.Sequence1)
Me.Parallel.Activities.Add(Me.Sequence2)
Me.Parallel.Name = "Parallel"
備註
注意
此資料討論已被汰換的類型及命名空間。 如需詳細資訊,請參閱 Windows Workflow Foundation 4.5 中即將淘汰的類型。
StateMachineWorkflowActivity 是活動容器,用於建立遵循狀態機器模型的工作流程。
StateMachineWorkflowActivity 為 CompositeActivity,也就是說,StateMachineWorkflowActivity 可以包含其他活動。 StateMachineWorkflowActivity 和 EventDrivenActivity 活動是唯一允許的 StateMachineWorkflowActivity 的子活動。 EventDrivenActivity 活動已允許,因為根活動本身的行為就和狀態一樣。 因此,根層級中可以有 EventDrivenActivity 活動,StateMachineWorkflowActivity 中所有狀態活動都會使用這些活動。 這個層級上的 EventDrivenActivity 活動會提供全域機制來處理工作流程事件,並自動轉換狀態。 StateActivity 活動提供機制來定義模型中的各種階段。
StateMachineWorkflowActivity 有執行狀態機器工作流程所需的屬性。 最值得注意的是,StateMachineWorkflowActivity 有兩個重要的屬性,分別是 InitialStateNameProperty 和 CompletedStateNameProperty。
狀態機器的 InitialStateNameProperty,就是在建立狀態機器的執行個體時,狀態機器當時所處的狀態。 InitialStateNameProperty 屬性為強制的,且必須在建立 StateMachineWorkflowActivity 時提供。 狀態機器的 InitialStateNameProperty 就像任何其他包含在狀態機器內的狀態活動一樣。 狀態活動可以是 StateMachineWorkflowActivity 根活動的直接子系,且 StateMachineWorkflowActivity 只能有一個 InitialStateNameProperty。
CompletedStateNameProperty 的 StateMachineWorkflowActivity 是 StateActivity 活動,指定做為 StateMachineWorkflowActivity 的結束狀態。 在轉換 CompletedStateNameProperty 時,會完成工作流程執行。 CompletedStateNameProperty 並非強制。 這表示您有未完成的 StateMachineWorkflowActivity。 這不表示狀態機器工作流程在記憶體中永遠為使用中。 可能會在 StateMachineWorkflowActivity 等待事件時將其卸載。
永遠不會完成的 StateMachineWorkflowActivity 活動在處理長期執行的商務異動時特別有用,例如供應商收到採購單的狀況時。 完成採購單並不表示採購單流程結束。 採購單完成後,採購單上的貨物可能退回,或者會修改採購單並加入額外的商品。 有時需要延長保留採購單的時間,以供法律或其他目的之用。 工作流程未完成只是表示工作流程仍然維持在卸載狀態。 某些情況下可能需要停用工作流程,這表示在一段時間之後,會強制關閉工作流程執行個體。
建構函式
StateMachineWorkflowActivity() |
已淘汰.
初始化 StateMachineWorkflowActivity 類別的新執行個體。 |
StateMachineWorkflowActivity(String) |
已淘汰.
使用活動的名稱,初始化 StateMachineWorkflowActivity 類別的新執行個體。 |
欄位
CompletedStateNameProperty |
已淘汰.
表示目標為 DependencyObject 屬性的 CompletedStateName。 |
InitialStateNameProperty |
已淘汰.
表示目標為 DependencyObject 屬性的 InitialStateName。 |
SetStateQueueName |
已淘汰.
用於變更 WorkflowQueue 狀態的 StateMachineWorkflowActivity 名稱。 這個欄位為常數。 |
StateChangeTrackingDataKey |
已淘汰.
保留變更追蹤資料索引鍵的字串值;"StateActivity.StateChange"。 這個欄位是常數。 (繼承來源 StateActivity) |
屬性
方法
事件
Canceling |
已淘汰.
取消執行活動時發生。 (繼承來源 Activity) |
Closed |
已淘汰.
發生於 Activity 已完成執行時。 (繼承來源 Activity) |
Compensating |
已淘汰.
發生於在 Activity 上執行補償方法時。 (繼承來源 Activity) |
Executing |
已淘汰.
發生於執行 Activity 時。 (繼承來源 Activity) |
Faulting |
已淘汰.
在執行個體執行期間引發例外狀況時發生。 (繼承來源 Activity) |
StatusChanged |
已淘汰.
發生於正在執行之 的 變更時。 (繼承來源 Activity) |
明確介面實作
IComponent.Disposed |
已淘汰.
表示處理元件 Disposed 事件的方法。 (繼承來源 DependencyObject) |