代码改变世界

WF学习笔记1

2007-07-31 13:17  markwangxm  阅读(233)  评论(0)    收藏  举报
由于在以前的项目中用工作流的地方比较多,所以一时兴趣来了,学习一下MS 的WF相关知识。
WF的定义:工作流是在一个活动图中进行定义的,它可能是一个人为操作或一个系统进程。一个活动在工作流中是一个步骤,其体现为一个可执行单元,并且是可重用的,可整合的。工作流在设计好后被编译成.net程序集,它被工作流运行时和通用语言运行时(CLR)所执行。

向WF进行参数传递方法: 
需要先在工作流中通过属性来进行设置
 private string firstName;
        
private string message;
        
public string FirstName 
        
{
            
set {firstName=value;}
        }

        
public string Message
        
{
            
get {return message;}
        }


        
// 而后在其他程序调用这个工作流创建一个工作流的实例时,通过 Dictionary键值集合进行传递
        Dictionary<string,object> initPara=new Dictionary<string,object>();

        initPara.Add(
"FirstName","Todd");

        WorkflowInstance instance 
= workflowRuntime.CreateWorkflow(typeof(HelloWorld.Workflow1),initPara);
        
        
// 取到WF返回的参数:
        workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e)
        
{
            message
=(string)e.OutputParameters["Message"];
            waitHandle.Set();
        }
条件活动定义可以有两种。一种通过Code实现,另一种通过外部规则实现。代码条件如下:
private void CheckCounter(object sender, ConditionalEventArgs e)
    
{

    e.Result 
= false;

    
if (counter < 10)

    
{

        e.Result 
= true;

    }


}