ActivityAction
類名
System.Activities.ActivityAction
System.Activities.ActivityAction<T>
System.Activities.ActivityAction<T1, T2>
System.Activities.ActivityAction<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>
文件
System.Activities.dll
結構說明
System.Activities.ActivityDelegate
是一個 sealed類
[DisplayName] 屬性 的類型為[string],是並行分支集合
[Handler] 屬性 的類型為[System.Activities.Activity],為要執行的Activity
[Argument,Argument1,Argument2,Argument16] 屬性 的類型為[System.Activities.DelegateInArgument<T>],用於 傳遞參數用
功能說明
ActivityAction,ActivityAction<T,,,> 與流程中應的InvokeAction,InvokeAction<T,,,>活動一起使用
InvokeAction
類名
System.Activities.Statements.InvokeAction
System.Activities.Statements.InvokeAction<T>
System.Activities.Statements.InvokeAction<T1, T2>
System.Activities.Statements.InvokeAction<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>
文件
System.Activities.dll
結構說明
繼承 NativeActivity
是一個 sealed類
override 了 [CacheMetadata方法] 與 [Execute方法] 與[Cancel 方法]
[Action]屬性 的類型為[System.Activities.ActivityAction,ActivityAction<T,,,> ],為要調用的 ActivityAction
[Argument,Argument1,Argument2,Argument16] 屬性 的類型為[System.Activities.InArgument<T> ],用於傳遞參數 用
功能說明
ActivityAction,ActivityAction<T,,,> 與流程中應的InvokeAction,InvokeAction<T,,,>活動一起使用
使用說明
ActivityAction,ActivityAction<T,,,>默認沒有添加到工具欄,要手動添加
例子 要實現如下功能:
在流程中定義一個string變量[myVariable]
在流程中定義一個ActivityAction屬性參數[myAction]
在流程中添加一個[ActivityAction<T>],這個活動會將[myVariable]傳入[myAction],並調用[myAction]
[myAction]的具體內容由創建流程時指定
流程
為其綁定要[InvokeAction]綁定要執行的[myAction],此步要在XAML文件中進行
<InvokeAction x:TypeArguments="x:String" Argument="[myVariable]" sap:VirtualizedContainerService.HintSize="200,22">
<PropertyReference x:TypeArguments="ActivityAction(x:String)" PropertyName="myAction" />
</InvokeAction>
宿主
testWorkflow testWorkflow = new testWorkflow();
ActivityAction<string> activityAction = new ActivityAction<string>();
activityAction.Argument = new DelegateInArgument<string>();
activityAction.Handler = new WriteLine() { Text = activityAction.Argument };
testWorkflow.myAction = activityAction;
WorkflowInvoker.Invoke(testWorkflow);
本文示例代碼:http://www.bianceng.net/dotnet/201208/241.htm