-流程启动方式1:

WorkflowInvoker.Invoke(new Workflow1());

-流程启动方式2:

WorkflowApplication instance = new WorkflowApplication(new Workflow1());

instance.Run();

-顺序容器Sequence定义了[Collection<Activity> Activities 属性]与[Collection<Variable> Variables 属性] ,[Activities]集合,可以存放Activity ,集合中的Activity按顺序从上向下执行 [Variables]集合用于存放变量。

-CodeActivity 一个抽向类,继承该类后,需要override该类的Execute方法,用于编写自定义的功能代码;

public sealed class CodeActivity1 : CodeActivity
    {
        // 定义一个字符串类型的活动输入参数
        public InArgument<string> Text { get; set; }

        // 如果活动返回值,则从 CodeActivity<TResult>
        // 派生并从 Execute 方法返回该值。
        protected override void Execute(CodeActivityContext context)
        {
            // 获取 Text 输入参数的运行时值
            string text = context.GetValue(this.Text);
            Console.WriteLine(text);
        }
    }

-可以定义变量来传递数据,流程中的变量也有作用域

Assign 赋值 继承CodeActivity可以对流程内定义的参数,变量赋值。

-Arguments是WF的输入输出接口,在同一个流程内,所有Activity共享一组参数. 参数有如下属性: In、Out、In/Out、property。

In参数关联变量值可传入内部;内部修改参数时,关联变量不会改变。

public sealed class InArgumentActivity : CodeActivity
 {
        public InArgument<string> InText { get; set; }
        protected override void Execute(CodeActivityContext context)
        {
            string text = context.GetValue(this.InText);
            Console.WriteLine("外部传入值:" + text);
            context.SetValue(InText, "内部修改V1的值");
            text = context.GetValue(this.InText);
            Console.WriteLine("内部修改后:" + text);

        }
 }

Out参数关联变量值无法传入内部,内部参数修改时,会更新其管理的变量。

public sealed class OutArgumentActivity : CodeActivity
{
        public OutArgument<string> OutText { get; set; }
        protected override void Execute(CodeActivityContext context)
        {
            string text = context.GetValue(this.OutText);
            Console.WriteLine("外部传入值:" + text);
            context.SetValue(OutText, "内部修改V1的值");
            text = context.GetValue(this.OutText);
            Console.WriteLine("内部修改后:" + text);

        }
 }

In/Out参数关联变量值可传入内部;内部参数修改时会更新其关联的变量。

public sealed class InOutArgumentActivity : CodeActivity
{
        public InOutArgument<string> InOutText { get; set; }
        protected override void Execute(CodeActivityContext context)
        {
            string text = context.GetValue(this.InOutText);
            Console.WriteLine("外部传入值:" + text);
            context.SetValue(InOutText, "内部修改V1的值");
            text = context.GetValue(this.InOutText);
            Console.WriteLine("内部修改后:" + text);

        }
}

WF学习笔记(一)的更多相关文章

  1. WF学习笔记(四)

    1.使用WorkflowApplication.OnUnhandledException 处理Code异常 ,用于产生异常的Activity: public class ExceptionActivi ...

  2. WF学习笔记(三)

    Collection 集合 -AddtoCollection<T> 添加项到集合 :[AddtoCollection]可以将一个项添加到[Collection]集合中 ,[Item]属性用 ...

  3. WF学习笔记(二)

    -DoWhile循环:当[Condition]条件为真时会执行[Body]中的内容, 当[Condition]条件为假时会执行[Body]中的内容一次 -ForEach<T> 循环 :[V ...

  4. 系列文章--WF学习资料汇总

    学习WF当然是MSDN作为第一手材料,但是看完了一些基础的入门知识后,园子里的一些WF大牛们的系列文章就是很好的提高的材料了.在此,感谢他们,我真佩服他们有这样的耐心和良好的学习习惯. 以下就是我经常 ...

  5. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  6. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  7. Coursera台大机器学习基础课程学习笔记1 -- 机器学习定义及PLA算法

    最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正. 一机器学习是什么? 感觉和 Tom M. Mitchell的定义几乎一致, A computer program ...

  8. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  9. 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归

    机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...

随机推荐

  1. 265行JavaScript代码的第一人称3D H5游戏Demo【个人总结1】

    本文目的是分解前面的代码.其实,它得逻辑很清楚,只是对于我这种只是用过 Canvas 画线(用过 Fabric.js Canvas库)的人来说,这个还是很复杂的.我研究这个背景天空也是搞了一天,下面就 ...

  2. CentOS相关引导文件杂摘

    1,EFI文件

  3. nopcommerce中文网

    nopcommerce中文网 | nopcommerce是国外asp.net领域一个高质量的b2c开源项目,基于EntityFramework和MVC开发,交流QQ群:75272942 nopcomm ...

  4. memcached与redis 对比

    一. 综述 读一个软件的源码,首先要弄懂软件是用作干什么的,那memcached和redis是干啥的?众所周知,数据一般会放在数据库中,但是查询数据会相对比较慢,特别是用户很多时,频繁的查询,需要耗费 ...

  5. 20169210《Linux内核原理与分析》第一周作业

    第一次接触Linux,还是有点不适应的,与Windows区别还是比较大的.在免费与收费.软件与支持.安全性.使用习惯.可定制性和应用范畴等方面都有区别. 通过实验楼的<Linux基础入门(新版) ...

  6. 阿里云 centos 部署javaweb 应用

    今天在阿里云上部署了个javaweb应用,在此记录下步骤,以供下次使用. 服务器版本: 1.root登陆服务器 2.服务器安装FTP服务,或者直接使用winscp上传文件(简单),本文介绍安装FTP服 ...

  7. 从注冊流程 分析怎样安全退出多个Activity 多种方式(附DEMO)

    前言 因为一个同学问到我怎样依照一个流程走好之后回到首页.我曾经看到过4个解决方式,后来发现有做个记录和总结的必要,就写了这篇博文. (之前看小强也写过一篇,这里通过自身的分析完整的总结一下下面6种方 ...

  8. 经常使用虚拟现实仿真软件总汇(zz)

     经常使用虚拟现实仿真软件总汇(zz)http://hi.baidu.com/busycai/blog/item/fe57e41e5f25fa1c403417b2.html 2007年09月07日 星 ...

  9. java中经常使用的日期格式化(全)

    import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...

  10. CentOS使用sendmail发送邮件

    1.安装sendmail yum -y install sendmail 2.启动sendmail服务 service sendmail start 3.将发件内容写入mail.txt mail -s ...