今天做WF 的.NET编程
一直弄了好久,对状态机方式今天终于有了一点小小的入门。还要感谢 曲滨 的程序

asp.net使用wwf
1,配置 web.config
    在 <configuration> 与<system.web>之间需要添加
WF终于有了一点入门的感觉<configSections>
WF终于有了一点入门的感觉    
<section name="WorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
WF终于有了一点入门的感觉    
<section name="ExternalDataExchangeService" type="System.Workflow.Activities.ExternalDataExchangeServiceSection, System.Workflow.Activities, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
WF终于有了一点入门的感觉  
</configSections>
WF终于有了一点入门的感觉 
<appSettings/>
WF终于有了一点入门的感觉 
<connectionStrings/>
2,在网站运行的时候就加载wf服务,编写 global.asax
WF终于有了一点入门的感觉System.Workflow.Runtime.WorkflowRuntime WorkflowRuntime = new System.Workflow.Runtime.WorkflowRuntime("WorkflowRuntime");
WF终于有了一点入门的感觉
 WorkflowRuntime.StartRuntime();

3.接口Interface的理解
以前一直都没怎么接触这个东东,现在觉得接口其实就是一个抽象类,由于知识有限,记住关于状态的Interface写法就好了
WF终于有了一点入门的感觉[ExternalDataExchange]//一定要写这个
WF终于有了一点入门的感觉
 public interface IBillWorkFlow
    }

4.再来解释一下global.asax中的那几个东东
 
WF终于有了一点入门的感觉System.Workflow.Activities.ExternalDataExchangeService dataService = new System.Workflow.Activities.ExternalDataExchangeService();
WF终于有了一点入门的感觉 WorkflowRuntime.AddService(dataService);
WF终于有了一点入门的感觉 Billdayone.MyBillWorkFlow myBillWorkFlow 
= new Billdayone.MyBillWorkFlow();
WF终于有了一点入门的感觉 dataService.AddService(myBillWorkFlow);
WF终于有了一点入门的感觉
//这几个东东是把自己定义的接口类加载到WorkflowRuntime的实例中去,很重要的。

5.接下来就是操作
a.创建一个工作流
WF终于有了一点入门的感觉System.Workflow.Runtime.WorkflowRuntime workflowruntime = Application["WorkflowRuntime"as System.Workflow.Runtime.WorkflowRuntime;
WF终于有了一点入门的感觉System.Workflow.Runtime.WorkflowInstance workflowinstance 
=  workflowruntime.CreateWorkflow(typeof(Billdayone.BillWorkFlow));
WF终于有了一点入门的感觉workflowinstance.Start();
WF终于有了一点入门的感觉
b.得到该WorkflowRuntime的所有正在执行的工作流
WF终于有了一点入门的感觉System.Workflow.Runtime.WorkflowRuntime workflowruntime = application["WorkflowRuntime"as System.Workflow.Runtime.WorkflowRuntime;
WF终于有了一点入门的感觉System.Collections.ObjectModel.ReadOnlyCollection
<System.Workflow.Runtime.WorkflowInstance> listWorkflowInstance = workflowruntime.GetLoadedWorkflows();
c.执行一个工作流,转化其状态
WF终于有了一点入门的感觉Billdayone.MyBillWorkFlow mMyworkflow = (Application["WorkflowRuntime"as System.Workflow.Runtime.WorkflowRuntime).GetService<Billdayone.MyBillWorkFlow>();
WF终于有了一点入门的感觉
WF终于有了一点入门的感觉
if (mMyworkflow != null)
        }

好了,只能做到这里,关于如何传参数以及把工作流从内存中保存下来要进一步学些。。。

downloadBilldayone.rar 开发环境 .net2005安装.net framework 3.0安装winfx安装Visual Studio 2005 extensions for .NET Framework 3.0 (Windows Workflow Foundation)
iis 5.1 os winxp

相关文章: