一起学WF3.5【1】

一、第一个例子

首先我们在VS中创建一个workflow控制台程序。只有在.NET Framework3.0以后才能显示出workflow的工程模板。

我们选择.NET Framework 4,类型选Workflow ConsoleApplicaiton。

解决方案和称和工程名称随意。我分别用Chapter01和HelloWorkflow。

向设计器中先拖一个Seaquece活动,再拖一个WriteLine活动到它里面。WriteLine里写上"Helloworkflow"。F5运行。能看到控制台输出字符。

Program类中的Main函数里如下两行代码创建并启动了一个工作流。

    Activity workflow1 =newWorkflow1();

         WorkflowInvoker.Invoke(workflow1);

二、使用代码定义工作流。

首先删除xaml文件,删除上述两行代码。

在空间HelloWorkflow中定义新类,命名为HelloWorkflow,代码如下:

     public class HelloWorkflow : Activity

     {

         public HellowWorkflow()

         {

              this.Implematation=() => new Sequence()

              {

                   Activities= {

                       newWriteLine() { Text="Hello Workflow" }

              }

         }

     }

解释一下,我们将HelloWorklow类的对象的Implematation属性设为一个顺序活动,其中添加一个WriteLine活动。

Main函数中添加:

     WorkflowInvoker.Invoke(newHelloWorkflow());

运行后,效果与上一个例子相同。

三、创建另一种工作流,新建项目,选择.NET Framework 3.5,选择SequentialWorkflow Console Application, 命名PCodeWorkflow。

会看到一个设计视图。拖一个IfElse活动到起点和终点之间。

点击红色叹号,在右侧的属性中的Condition行选“Code Condition”,点Condition左侧的加号,在“Condition”行写函数名称 “EvaluatePostCode”。

在工具箱拖两个Code Activity到两个分支。分别在执行代码中写函数名PostCodeValid和PostCodeInvalid。

在Workflow1.cs中生成上述三个函数。

private voidEvaluatePostCode(object sender, ConditionalEventArgs e)

        {

            string USCode = @"^(\d{5}$)|(\d{5}$\-\d{4}$)";

            string CanadianCode = @"[ABCEGHJKLMNPRSTVXY]\D[A-Z]\d[A-Z]\d";

            e.Result = (Regex.IsMatch(_code,USCode) || Regex.IsMatch(_code, CanadianCode));

        }

 

private void PostalCodeValid(objectsender, EventArgs e)

        {

            Console.Write("The postal code{0} is valid.", _code);           

        }

private void PostalCodeInvalid(object sender, EventArgse)

        {

            Console.Write("The postal code{0} is invalid.", _code);

            Console.ReadLine();

        }

并定义如下属性:

private string _code = string.Empty;

        public string PostalCode

        {

            get

            {

                return _code;

            }

            set

            {

                _code = value;

            }

        }

 

打开program.cs,定位到WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(PCodeFlow.Workflow1),wfArgs);

修改为

Dictionary<string,object> wfArgs = newDictionary<string, object>();

wfArgs.Add("PostalCode",args.Length > 0? args[0] : "");

WorkflowInstanceinstance = workflowRuntime.CreateWorkflow(typeof(PCodeFlow.Workflow1),wfArgs);

 

编译程序。打开cmd,定位到工程的debug目录,执行PCodeflow.exe,后边记得加上参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Microsoft .NET Framework 3.5 SP1是微软推出的一款软件开发框架,用于支持Windows操作系统上的应用程序开发和部署。它更像是一个桥梁,使得开发人员能够使用不同的编程语言来创建各种类型的应用程序。 .NET Framework 3.5 SP1是对之前版本的扩展和增强。它提供了一些新的功能和改进的性能,以便开发人员能够更好地构建和管理应用程序。其中一些新的功能包括对LINQ(Language Integrated Query)的支持,它能够简化对数据的查询和操作;新的并行计算库,使得应用程序能够更好地利用多核处理器的能力;以及对ASP.NET AJAX的改进,使得开发Web应用程序更加方便和高效。 同时,.NET Framework 3.5 SP1还提供了对许多其他功能和技术的支持,包括Windows Communication Foundation(WCF),Windows Presentation Foundation(WPF),Windows Workflow Foundation(WF)等。这些技术能够帮助开发人员构建强大的应用程序,例如Web服务、桌面应用程序和工作流程应用程序。 另外,安装了.NET Framework 3.5 SP1的计算机上可以运行使用该框架开发的应用程序,无论是在Windows操作系统内还是通过Internet进行部署。这意味着开发人员可以使用.NET Framework来开发跨平台的应用程序,并且用户可以在各种设备上运行这些应用程序,无论是台式机、笔记本电脑、平板电脑还是智能手机。 总而言之,Microsoft .NET Framework 3.5 SP1是一款强大且功能丰富的开发框架,它提供了一系列的工具和技术,方便开发人员构建各种类型的应用程序,并实现跨平台的部署。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值