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;

}

}


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();
}
private void CheckCounter(object sender, ConditionalEventArgs e)
{
e.Result = false;
if (counter < 10)
{
e.Result = true;
}
}



浙公网安备 33010602011771号