Windows Workflow Foundation (wwf) 学习笔记(二)

来源:互联网 发布:tpshop源码 编辑:程序博客网 时间:2024/05/28 23:20
Windows Workflow Foundation (wwf) 学习笔记(二)
4、           Sequential Workflow With Parameters
Workflow的流程是可以带参数的,这样,流程代码可以根据外界参数的值来对后面执行情况进行选择判断。
在本例用选中SequentialWorkflow对象,可以看到该对象有Parameters属性,点击该属性,探出如下图窗体:
这里可以定义多个Parameter对象,包括对象的NameType等属性,Direction用于表明该参数是输入参数还是输出参数。本例中定义了amount输入参数,和status输出参数。
本例流程如图,ifElseBranch1Condition属性的执行方法如下:
 private bool IsApproved(object sender, EventArgs e)
        {
            if (Convert.ToInt32(this.Parameters["amount"].Value) < 500)
                return true;
            else
                return false;
        }
这里是根据外界传递来的参数amount的值判断ifElse最终选择的路径的。
Code1中:
private void Approved(object sender, EventArgs e)
{
    this.Parameters["status"].Value = "approved";
}
Code2中:
private void Rejected(object sender, EventArgs e)
{
    this.Parameters["status"].Value = "rejected";
}
Code1Code2分别给出了2种路径的输出参数值。
在看看Program.cs中是怎样调用这个带参数的工作流的
Dictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("amount", Convert.ToInt32(args[0]));
 
// Load the workflow type
Type type = typeof(SequentialWorkflowWithParameters);
 
// Create and start an instance of the workflow
workflowRuntime.StartWorkflow(type, parameters);
在工作流结束的事件中,通过OutputParameters属性,拿到了输出参数status的值。
static void OnWorkflowCompleted(object sender, WorkflowCompletedEventArgs workflowCompletedEventArgs)
{
 //The order status is stored in the "status" "in" parameter
 string orderStatus = workflowCompletedEventArgs.OutputParameters["status"].ToString();
 Console.WriteLine("Order was " + orderStatus);
 waitHandle.Set();
}
posted on 2006-05-08 15:07 安徒生的童话 阅读(1152) 评论(2)  编辑 收藏 引用 网摘
评论
  • 夏林
    Posted @ 2006-05-08 16:16
    顶,我手上的工作也正需要研究这一块,一起讨论。

    徐汇  回复  更多评论   
  • # re: Windows Workflow Foundation (wwf) 学习笔记(二)
    随风飘散
    Posted @ 2006-05-09 15:18
    兄弟加入WinFX团队呀,一起研究WinFX  回复  更多评论   
# re: Windows Workflow Foundation (wwf) 学习笔记(二)
 
原创粉丝点击