Windows Workflow Foundation (wwf) 學習筆記(二)
4、
Sequential Workflow With ParametersWorkflow的流程是可以帶參數的,這樣,流程代碼可以根據外界參數的值來對後面執行情況進行選擇判斷。在本例用選中SequentialWorkflow對象,可以看到該對象有Parameters屬性,點擊該屬性,探出如表單:這裡可以定義多個Parameter對象,包括對象的Name、Type等屬性,Direction用於表明該參數是輸入參數還是輸出參數。本例中定義了amount輸入參數,和status輸出參數。本例流程,ifElseBranch1的Condition屬性的執行方法如下: private bool IsApproved(object sender, EventArgs e) { if (Convert.ToInt32(this.Parameters["amount"].Value) < 500) return true; else return false; }這裡是根據外界傳遞來的參數amount的值判斷ifElse最終選擇的路徑的。在Code1中:private void Approved(object sender, EventArgs e){ this.Parameters["status"].Value = "approved";}在Code2中:private void Rejected(object sender, EventArgs e){ this.Parameters["status"].Value = "rejected";}Code1和Code2分別給出了2種路徑的輸出參數值。在看看Program.cs中是怎樣調用這個帶參數的工作流程的Dictionary<string, object> parameters = new Dictionary<string, object>();parameters.Add("amount", Convert.ToInt32(args[0])); // Load the workflow typeType type = typeof(SequentialWorkflowWithParameters); // Create and start an instance of the workflowworkflowRuntime.StartWorkflow(type, parameters);在工作流程結束的事件中,通過OutputParameters屬性,拿到了輸出參數status的值。static void OnWorkflowCompleted(object sender, WorkflowCompletedEventArgs workflowCompletedEventArgs){ //The order status is stored in the "status" "in" parameter string orderStatus = workflowCompletedEventArgs.OutputParameters["status"].ToString(); Console.WriteLine("Order was " + orderStatus); waitHandle.Set();}
posted on 2006-05-08 15:07 安徒生的童話 閱讀(1152) 評論(2) 編輯 收藏 引用 網摘
評論
# re: Windows Workflow Foundation (wwf) 學習筆記(二)