五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 學(xué)Windows Workflow Foundation(2)-----讓W(xué)F通過參數(shù)接收數(shù)據(jù)

學(xué)Windows Workflow Foundation(2)-----讓W(xué)F通過參數(shù)接收數(shù)據(jù)

文章來源:365jz.com     點(diǎn)擊數(shù):370    更新時(shí)間:2009-09-12 17:00   參與評(píng)論

在這一節(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 ;

        
public string FirstName
        {
            
get
            {
                
return firstName;
            }
            
set
            {
                firstName 
= value;
            }
        }

        
private string lastName;

        
public string LastName
        {
            
get
            {
                
return lastName;
            }
            
set
            {
                lastName 
= value;
            }
        }

 

這里我們將通過其他應(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)
        {
            System.Windows.Forms.MessageBox.Show(
                    
"Hello world: " + firstName + " " + lastName);
        }


現(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í)聲明:

       private WorkflowRuntime wr;

 

雙擊btnStartWorkflow添加事件處理程序。

        private void btnStartWorkflow_Click(object sender, EventArgs e)
        {
            
if (wr == null)
            {
                wr 
= new WorkflowRuntime();
                wr.StartRuntime();
            }

            
//定義鍵和值的集合(Dictionary)用來傳遞參數(shù)
            Dictionary<stringobject> parameters = new Dictionary<stringobject>();
            parameters.Add(
"FirstName", txtFirstName.Text);
            parameters.Add(
"LastName", txtLastName.Text);

            
//創(chuàng)建一個(gè)工作流實(shí)例
            WorkflowInstance instance = wr.CreateWorkflow(typeof(HelloWorldWorkflow.Workflow1), parameters);
            
//啟動(dòng)工作流
            instance.Start();
            
        }

最后給FormClosed事件添加一段代碼,使其在關(guān)閉窗體時(shí)關(guān)閉工作流

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            
if (wr != null)
            {
                
if (wr.IsStarted)
                {
                    wr.StopRuntime();
                }
            }
        }

 

現(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)入論壇

發(fā)表評(píng)論 (370人查看0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)