使用規則配合工作流程標記
在工作流程標記中使用規則或規則條件時,您必須使用 GetActivityByName 以參考工作流程中的子活動。 例如,如果您有附名為 Foo 的 int 屬性之名為 myCustomActivity 的自訂活動,則在規則條件中使用 Foo 會看起來如下列所示:
((myCustomActivityType)(this.GetActivityByName("myCustomActivity"))).Foo > 10
注意
GetActivityByName 方法會傳回 Activity 型別,因此您必須將它轉型成適當型別,才能存取它的屬性。
在程式碼分開置放的檔案中,活動被定義為在工作流程上的屬性,因此規則可以用下列方法直接存取它們:
this.myCustomActivity.Foo > 10
WhileActivity 和 ReplicatorActivity 活動必須分開存取,因為 ReplicatorActivity 活動建立的 WhileActivity 活動和每個子活動的每次重複存在於它自己的內容中。 這表示您從 System.Workflow.Activities.ReplicatorActivity.DynamicActivities 或 System.Workflow.Activities.ReplicatorActivity.DynamicActivities 接收的活動來自於工作流程的內容,此內容是該子活動的其他執行個體。 若要取得正在執行的實際執行個體,您必須使用 GetActivityByName 方法,如下列範例所示。
((myCustomActivity)(this.GetActivtyByName("instanceOfCustomActivity", true))).Foo > 5
第二個參數指定您想要來自工作流程內容的子系,或來自執行個體內容的子系。 由於您想要在 WhileActivity 或 ReplicatorActivity 中執行的執行個體,因此您應該將參數設定為 true。
請參閱
概念
Copyright © 2007 by Microsoft Corporation. All rights reserved.