由于在以前的项目中用工作流的地方比较多,所以一时兴趣来了,学习一下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;
}
}