当前位置 : 主页 > 网络编程 > 其它编程 >

WF(WindowsWorkflowFoundation)工作流学习(二)一个Asp.Net与顺序工作流结合的例子

来源:互联网 收集:自由互联 发布时间:2023-07-02
程序下载地址:http:files.cnblogs.comTerryFengWF2.rar建立一个空的解决方案,向其中加入一个顺序工作流类库和一个Asp.NetWeb应用程序项目, 程序下载地址: http://files.cnblogs.com/TerryFeng/WF2.rar 建
程序下载地址:http:files.cnblogs.comTerryFengWF2.rar建立一个空的解决方案,向其中加入一个顺序工作流类库和一个Asp.NetWeb应用程序项目,

程序下载地址: http://files.cnblogs.com/TerryFeng/WF2.rar

建立一个空的解决方案,向其中加入一个顺序工作流类库和一个Asp.Net Web 应用程序项目,结果如下图

2009-04-13_143252

向asp.Net 程序中,添加引用,“WF”是工作流项目,如图

2009-04-13_143449

向Web.Config 中加入WF的注册(细节下载代码看一下)。

添加一个全局Global.asax 文件,添加如下代码

protected void Application_Start(object sender, EventArgs e) { WorkflowRuntime workflowRuntime = new WorkflowRuntime("WorkflowRuntime"); workflowRuntime.StartRuntime(); Application["WorkflowRuntime"] = workflowRuntime; } protected void Session_Start(object sender, EventArgs e) { WorkflowRuntime workflowRuntime = Application["WorkflowRuntime"] as WorkflowRuntime; workflowRuntime.StopRuntime(); }

向Default.aspx中添加3个控件,Textbox,button,label ,双击Button为其添加单击事件,并在default.aspx.cs 中添加如下代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Workflow.Runtime;using System.Workflow.Runtime.Hosting;using System.Workflow.ComponentModel;using System.Workflow.Activities;namespace AspNet{ public partial class _Default : System.Web.UI.Page { string Result = string.Empty; protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { StartWorkflow(); Label1.Text = Result; } private void StartWorkflow() { WorkflowRuntime workflowRuntime = Application["WorkflowRuntime"] as WorkflowRuntime; ManualWorkflowSchedulerService scheduler = workflowRuntime.GetService(typeof(ManualWorkflowSchedulerService)) as ManualWorkflowSchedulerService; workflowRuntime.WorkflowCompleted += new EventHandler(workflowRuntime_WorkflowCompleted); Dictionary wfPara = new Dictionary(); wfPara.Add("Name", TextBox1.Text); WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(typeof(WF.Workflow1), wfPara); workflowInstance.Start(); scheduler.RunWorkflow(workflowInstance.InstanceId); } void workflowRuntime_WorkflowCompleted(object sender, WorkflowCompletedEventArgs e) { if (e.OutputParameters.ContainsKey("Result")) { Result = (string)e.OutputParameters["Result"]; } } }}

好了,下面,在WF项目中的Workflow1,拖入一个Code控件,如下图

2009-04-13_144435

为CodeActivety1.添加事件代码,方法名字可以自己取,也可以用默认的,我这里用了一个Exefun的方法名,

2009-04-13_145052

代码如下

namespace WF{ public sealed partial class Workflow1 : SequentialWorkflowActivity { public string Name { get; set; } public string Result { get; set; } public Workflow1() { InitializeComponent(); } private void ExeFun(object sender, EventArgs e) { Result = "你好:" + Name; } }}

好了,编译一下程序,在TextBox中输入字符串,点击按钮看一下。

2009-04-13_144823

上一篇:《算法技术手册》一3.7参考文献
下一篇:没有了
网友评论