程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> WF4.0基礎篇 (二十五)(補充) ActivityFunc與InvokeFunc

WF4.0基礎篇 (二十五)(補充) ActivityFunc與InvokeFunc

編輯:關於.NET

ActivityFunc<TResult>

 

類名

System.Activities.ActivityFunc<TResult>

 

System.Activities.ActivityFunc<T, TResult>

System.Activities.ActivityFunc<T1, T2, TResult>

System.Activities.ActivityFunc<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult>

 

文件

System.Activities.dll

 

結構說明

System.Activities.ActivityDelegate

 

是一個 sealed類

[DisplayName] 屬性 的類型為[string],是並行分支集 合

[Handler] 屬性 的類型為[System.Activities.Activity],為要執行的Activity

[Argument,Argument1,Argument2,Argument16] 屬性 的類型為[System.Activities.DelegateInArgument<T>],用於傳遞參數用

[Result]屬性 的類型為[System.Activities.DelegateOutArgument<TResult>] ,用於得到返回值

 

功能說明

ActivityFunc<T,,, TResult> 與流程中應的 InvokeFunc<TResult>,InvokeAction<T,,,TResult活動一起使用

 

InvokeFunc

類名 System.Activities.Expressions.InvokeFunc<TResult>

 

System.Activities.Expressions.InvokeFunc<T, TResult>

System.Activities.Expressions.InvokeFunc<T1, T2, TResult>

System.Activities.Expressions.InvokeFunc<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult>

文件 System.Activities.dll 結構說明 繼承 NativeActivity<TResult>

 

是一個 sealed類

override 了 [CacheMetadata方法] 與 [Execute方法] 與[Cancel 方法 ]

[Func]屬性 的類型為[System.Activities.ActivityFunc<TResult>,ActivityFunc<T,,,TResult> ],為要調 用的ActivityAction

[Argument,Argument1,Argument2,Argument16] 屬性 的類型為[System.Activities.InArgument<T> ], 用於傳遞參數用

功能說明 ActivityFunc<T,,, TResult> 與流程中應的 InvokeFunc<TResult>,InvokeAction<T,,,TResult活動一起使用

 

使用說明

ActivityFunc<TResult>,ActivityFunc<T,,,TResult>默認沒有添加到工具欄,要手動添加

例子 要實現如下功能:

在流程中定義一個string變量[myVariable]

在流程中定義一個ActivityFunc 屬性參數[myFunc]

在流程中添加一個[ActivityAFunc<T,T>],這個活動會將[myVariable]傳入[myFunc],並調用[myFunc]

在流程中添加 一個[WriteLine],用於打印[ActivityAFunc<T,TResult>]的返回值

[myFunc]的具體內容由創建流程時指定

流程

為其綁定要[InvokeFunc]綁定要執行的[myFunc],此步要在XAML文件中進行

<InvokeFunc  x:TypeArguments="x:String, x:String" Argument="[myVariable]" sap:VirtualizedContainerService.HintSize="213,22"  Result="[myResult]">

<PropertyReference x:TypeArguments="ActivityFunc(x:String, x:String)"  PropertyName="myFunc" />

</InvokeFunc>

宿主

一個用於測試的有返回值Activity

public class myActivity : CodeActivity<string>
{
public InArgument<string> inArgument
{ set; get; }

protected override string Execute(CodeActivityContext context) 
{
string v = context.GetValue(inArgument);

return v+":wxd";
}
}

宿主

testWorkflow testWorkflow = new testWorkflow();

ActivityFunc<string, string> activityFunc = new ActivityFunc<string, string>();

activityFunc.Argument = new DelegateInArgument<string>();

activityFunc.Handler = new myActivity() { inArgument = activityFunc.Argument };

testWorkflow.myFunc = activityFunc;

WorkflowInvoker.Invoke(testWorkflow);

結果

示例代碼:http://www.bianceng.net/dotnet/201208/242.htm

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved