WF学习笔记(一)
-流程启动方式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学习笔记(一)的更多相关文章
- WF学习笔记(四)
1.使用WorkflowApplication.OnUnhandledException 处理Code异常 ,用于产生异常的Activity: public class ExceptionActivi ...
- WF学习笔记(三)
Collection 集合 -AddtoCollection<T> 添加项到集合 :[AddtoCollection]可以将一个项添加到[Collection]集合中 ,[Item]属性用 ...
- WF学习笔记(二)
-DoWhile循环:当[Condition]条件为真时会执行[Body]中的内容, 当[Condition]条件为假时会执行[Body]中的内容一次 -ForEach<T> 循环 :[V ...
- 系列文章--WF学习资料汇总
学习WF当然是MSDN作为第一手材料,但是看完了一些基础的入门知识后,园子里的一些WF大牛们的系列文章就是很好的提高的材料了.在此,感谢他们,我真佩服他们有这样的耐心和良好的学习习惯. 以下就是我经常 ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- Coursera台大机器学习基础课程学习笔记1 -- 机器学习定义及PLA算法
最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正. 一机器学习是什么? 感觉和 Tom M. Mitchell的定义几乎一致, A computer program ...
- shell学习笔记
shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...
- 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归
机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...
随机推荐
- Unity3d shader之次表面散射(Subsurface Scattering)
次表面散射是一种非常常用的效果,可以用在很多材质上如皮肤,牛奶,奶油奶酪,番茄酱,土豆等等 初衷是想做一个牛奶shader的,但后来就干脆研究了sss这是在vray上的次表面散射效果 这是本文在un ...
- Java数据库编程
ava与数据库交互的主要API是jdbc.jdbc的主要目的是: 1.通过使用SQL或者专有的SQL扩展,程序员可以利用java语言开发访问数据的应用. 2.数据库开发商或者数据库工具开发商改进数据库 ...
- hdoj 1045 Fire Net
Fire Net Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- iOS开发之获取WIFI信号强度
虽然各种直接获取信号强度的api都被封杀了.但是还有一个另类的黑魔法可以获取到.那就是遍历UIStatusBar了 - (void)getSignalStrength{ UIApplication * ...
- 【基础】多线程更新窗体UI的若干方法
一.前言 在单线程中设置窗体某个控件的值很简单的事,只需要设置控件文本的值就可以了,但是有的业务场景很是复杂,界面上的控件也很多,这种情况下当数据量比较多的时候,在单线程中更新UI不可避免地会发生假死 ...
- form与action之setter与getter(转)
对于表单提交数据给action时候,可以简单的用setter与getter函数实现值的传递. 例如在jsp里有这么个form: <s:form action="login"& ...
- 1040. Longest Symmetric String (25)
题目链接:http://www.patest.cn/contests/pat-a-practise/1040 题目: 1040. Longest Symmetric String (25) 时间限制 ...
- Git 经常使用的命令
查看.参加.服从.删.恢复,复位更改文件 git help <command> # 演出command的help git show # 显示的提交内容 git show $id git c ...
- SQLLite 简介
[1] SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内 ...
- ArrayBlockingQueue 源码阅读 问题(一)
今天阅读java.util.concurrent 中 ArrayBlockingQueue 的源码,发现其中有很多下面这行代码 final ReentrantLock lock = this.lock ...