變數是資料的儲存位置,變數被宣告為工作流定義的一部分。變數在執行時獲取值,並將這些值儲存為工作流例項狀態的一部分。變數定義指定了變數的型別,還可指定變數的名稱。首先簡單的看乙個小例子,設定乙個變數,給變數賦值,然後輸出變數:
從工具箱拖乙個sequence,然後拖入乙個assign,最後拖入乙個writeline:
同樣的我們可以再後台自己寫**實現以上過程,**如下:
//定義變數
variablevars = new variable;
sequence sequence = new sequence()
,activities =
,//輸出變數
new writeline()}};
//呼叫活動
workflowinvoker.invoke(sequence);
變數在執行時的生存期與宣告該變數的活動的生存期相同。活動完成後,其變數將被清除,並且無法再引用。特別說明一下,如果你給變數乙個預設值或者希望變數時唯讀的,可以進行如下設定:
variablevars = new variable;
引數來定義資料流入流出活動的方式,每個引數都有特定的方向,in,out,inout;引數是wf的輸出和輸入介面,在同乙個流程內,所有activity共享一組引數.活動作者可使用強型別機制來公開該活動的引數。實現方法是宣告 inargument、outargument 和 inoutargument型別的屬性。簡單的看乙個demo:
拖sequence,設定引數argument1,argument2,argument3,賦值,輸出:
自定義活動中inargument,outargument的使用:
1.定義乙個helloactivity
public sealed class helloactivity : codeactivity2.流程圖中定義個變數outname,乙個輸出引數myvalue,將outname賦值給hellactivity的outtext,myvalue賦值給text,流程圖如下:// 定義乙個字串型別的活動輸出引數
public outargumentouttext
protected override void execute(codeactivitycontext context)
}
3.呼叫方式如下:
dictionarydic = new dictionary();
dic.add("myvalue", "programer");
通過以上小例子應該明白的就是inargument可以接收引數無法傳出,outargument無需傳入可以直接傳出;上面如果不是很清晰的話,繼續看乙個簡單賦值自定義活動:
定義v1,v2,v3三個變數,然後將v1賦值給v2,v3:
variablev1 = new variable()
;variablev2 = new variable();
variablev3 = new variable();
// 定義工作流
activity wf = new sequence
,activities =
,new writeline() ,
new assign()
,new writeline() }};
workflowinvoker.invoke(wf);
這篇算是補發文章吧,基礎文章還是慢慢寫吧,前面的有些例子比較簡單,對於沒有用過的可能不是很熟悉,補發之後希望會好一點,文章很基礎,高手可忽略,如果你覺得文章對你有所幫助,幫忙給個推薦吧,多謝~ WF4 0 3 變數與引數
變數是資料的儲存位置,變數被宣告為工作流定義的一部分。變數在執行時獲取值,並將這些值儲存為工作流例項狀態的一部分。變數定義指定了變數的型別,還可指定變數的名稱。首先簡單的看乙個小例子,設定乙個變數,給變數賦值,然後輸出變數 從工具箱拖乙個sequence,然後拖入乙個assign,最後拖入乙個wri...
深入淺出WF 活動引數與變數的使用
概述通過變數的使用來實現資料的傳遞。活動內部的變數和使用的引數 in 引數 關聯變數值可傳入內部 內部修改引數時,關聯變數不會更改 out 引數 關聯變數值無法傳入內部,內部引數修改時,會更新其關聯的變數 in out 引數 關聯變數值可傳入內部 內部引數修改時,會更新其關聯的變數 以上引數可以使用...
WF4 0 Beta1 用表示式關聯變數與引數
有 in引數 的activity 工作流 宿主workflowinstance myinstance new workflowinstance new sequence1 myinstance.run system.console.read 結果 下面用乙個例子說明 1.定義乙個有 int引數 的a...