在這一節(jié),我們一起學(xué)習(xí)通過其他程序調(diào)用工作流,并且在工作流啟動(dòng)時(shí)給工作流傳遞一些數(shù)據(jù),使其在工作流中使用。
在workflow開始執(zhí)行時(shí),我們有兩種方式給工作流傳遞數(shù)據(jù)------參數(shù)和事件。今天,我們先說說怎樣通過參數(shù)來給工作流傳遞數(shù)據(jù)。
需要傳遞給workflow的參數(shù),我們需要先在工作流中通過屬性來進(jìn)行設(shè)置,而后在其他程序調(diào)用這個(gè)工作流創(chuàng)建一個(gè)工作流的實(shí)例時(shí),通過 Dictionary<string, object>鍵值集合進(jìn)行傳遞,如下:
繼續(xù)使用我們上一節(jié)用到的代碼,給Workflow1 類添加兩個(gè)屬性FirstName和LastName
private string firstName ;
這里我們將通過其他應(yīng)用程序傳遞fristName和lastName并讓這兩個(gè)值在工作流執(zhí)行過程中以對(duì)話框的形式顯示出來。
因?yàn)槲覀兩弦还?jié)中創(chuàng)建的是個(gè)控制臺(tái)應(yīng)用程序,所以讓起彈出對(duì)話框需要應(yīng)用System.Windows.Forms程序集。
然后修改我們的Workflow1類中的codeActivity1_CodeHandler
private void codeActivity1_CodeHandler(object sender, EventArgs e)
現(xiàn)在我們已經(jīng)修改好我們要做的工作流代碼了。
下面我們要?jiǎng)?chuàng)建一個(gè)winForm應(yīng)用程序。
添加一個(gè)新的項(xiàng)目WinFormTestHost。
接下來我們要確認(rèn)我們新創(chuàng)建的項(xiàng)目WinFormTestHost能夠調(diào)用工作流Workflow1。
給WinFormTestHost添加引用,引用項(xiàng)目HelloWorldWorkflow.
同時(shí),我們還要讓我們的這個(gè)winfrom應(yīng)用程序引用wwf程序集。繼續(xù)添加引用,選擇.net選項(xiàng)卡,添加如下三項(xiàng):
System.Workflow.Activities
System.Workflow.ComponentModel
System.Workflow.Runtime
修改我們的Form1窗體。
添加兩個(gè)Label分別為L(zhǎng)abel1和Label2,Text屬性分別為First name和 LastName。
添加兩個(gè)TextBox分別為txtFirstName和txtLastName。
添加一個(gè)按鈕btnStartWorkflow,用來啟動(dòng)我們的工作流,Name屬性為btnStartWorkflow,Text屬性為Start Workflow。
這個(gè)簡(jiǎn)單的窗體就做完了,我們來添加代碼。
首先在我們的類Form1.cs中添加工作流運(yùn)行時(shí)聲明:
雙擊btnStartWorkflow添加事件處理程序。
最后給FormClosed事件添加一段代碼,使其在關(guān)閉窗體時(shí)關(guān)閉工作流
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
現(xiàn)在,我們的程序就開發(fā)完成了,點(diǎn)擊F5,將打開窗體:
我們輸入名稱后點(diǎn)Start Workflow,將彈出窗體:
這個(gè)窗體是在Workflow1中執(zhí)行的,同時(shí),我們也看到,在winfrom窗體中輸入的值成功的傳遞到了工作流中。
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇