zoukankan      html  css  js  c++  java
  • 第四个C#工作流实例--构建流程图工作流

    新建一个Workflow Console Application,从工具箱中的FlowChart(流程图)节点下,将一个FlowChart活动拖拽到设计器中,在Properties窗口中将DisplayName属性值更改为容易记住的名字,注意:在FlowChart活动的右下角有一个缩放处理的图标,可以用来增大或缩小流程图设计器空间的尺寸,随着活动的增多,你将需要扩大这个尺寸。
    第四个C#工作流实例--构建流程图工作流
    Start图标表示该流程图活动的入口,在本例中它是我们放置的整个工作流中的第一个活动,并且将在使用WorkflowInvoker或WorkflowApplication类执行工作流时被触发。你可以将这个图标拖动到设计器的任何位置,我建议留在左上角,以便流出更多的空间。

    我们的目标是通过连接多个活动将它们组装在一起,通常在流程中要用到FlowDecision活动,我们将WriteLine活动拖拽到设计器上,将Display名称改为GetProductName,如果现在你将鼠标停在Start图标上,会发现四个方向都出现了对接标记,单击并按住对接标记,然后拖动到WriteLine活动,这样会在这两项中出现一条连接线,这意味着工作流执行的第一个活动是GetProductName。
    第四个C#工作流实例--构建流程图工作流

    我们添加了一个名为ProductName的无默认值的字符串类型的工作流参数,该参数通过自定义的Dictionary<>对象动态传入,最后将WirteLine活动的Text属性值为如下的代码语句:
    “产品:”&ProductName 这个语句的意思等同于我们代码里面写的“产品:”+ProductName,因为工作流输入代码条件时使用的是VB的语法,所以要这样写
            在设计器中再添加一个WriteLine活动,并连接到前一个WriteLine,在Text属性中硬编码字符串值“库存状态”,并将DisplayName属性改为GetProductInventory,并添加一个参数InventoryState
    第四个C#工作流实例--构建流程图工作流

    使用InvokeMethod活动
    现在我们要检查产品的库存情况,因此我们可以很好地使用InvokeMethod活动,现在我们再添加一个WriteLine修改DisplayName属性为:Pay Y or N 并与GetProductInventory连接
    第四个C#工作流实例--构建流程图工作流
    选择InvokeMethod活动要配置的第一个属性为TargetType,它表示类的名称,我们要调用的静态成员就定义在该类中。选择浏览类型(Browse for Types)选项,找到System.Console类之后,单击OK.选择下面的MethodName属性设置为ReadLine,这个方法是通过键盘输入的字符串。
    第四个C#工作流实例--构建流程图工作流
    我们需要一种方法来得到这个返回值,接下来就将介绍这个方法。添加一个名为YesOrNo的参数string类型,点击我们的Pay Y or N看右侧的属性窗口,里面有个Result来接收返回值。
    第四个C#工作流实例--构建流程图工作流

        使用FlowDecision活动
    它提供了两种行为,它是基于布尔类型的返回值判断真假,来决定执行那个行为,将活动拖拽到设计器上,并与Pay Y or No相连接。
        点击Decision看到右侧属性,我们可以直接在里面输入YesOrNo.ToLower() = "y",注意vb语法判断只能用一个等于号,鼠标放在Decision可以看到,true和false两个箭头,我们拖拽两个Writeline一个连接true,表示可以加入购物车,一个连接false表示不能购买,显示到货通知。
    第四个C#工作流实例--构建流程图工作流

    打开Program.cs
    static void Main(string[] args)
            {
                Dictionary wlData = new Dictionary();
                wlData.Add("ProductName", "小米手机青春版");
                wlData.Add("InventoryState", "Yes,请输入是否可以购买 Y/N");
                WorkflowInvoker.Invoke(new Workflow1(), wlData);
            }
    运行程序:输入Y,显示加入购物车
    第四个C#工作流实例--构建流程图工作流
    输入:N,显示到货通知
    第四个C#工作流实例--构建流程图工作流
  • 相关阅读:
    学习CLR Via C#的一些体会
    ScrollView动画滚动
    使用blend自定义symbol
    Silverlight中消除ToolTip的白色背景
    nil,NULL,NSNull的区别
    app store,Mac app store 下载加速的方法
    发布时NSLog不打印信息
    TestFlight的使用步骤
    “Could not change executable permissions on the application”的原因和解决方法
    iOS6地图“查看路线”、导航功能的实现
  • 原文地址:https://www.cnblogs.com/zzw1986/p/4702236.html
Copyright © 2011-2022 走看看