花了两天时间学习使用WF,把一些遇到的问题记录下来,使用的环境是VS2017,网上的资料普遍太老了

需要注意,如果使用多项目同时启动的方式需要把WCF调整到WF启动顺序之上

1.怎么使用代码活动

  1. 新建代码活动,重新生成解决方案
  2. 随后自己的代码活动便会出现在工具箱中
  3. 如下图

 工具箱名称为WF项目名称

 随后拖入活动中使用即可

2.使用switch时注意不加双引号,见图

  1. 编程习惯所以一开始加上双引号结果无法正常运行,然后鬼使神差的去掉了引号就可以了,
    不明所以,望周知,感谢

3.变量传递

  1. 在参数中定义输入、输出的参数,即参数传递的方向,一看便知,不细讲了

在变量中定义需要用到的局部变量,可以设置作用域

  1. 命名空间,一看便知

  1.  

4.代码活动的输入参数和返回值

  1. 下图为代码活动中对参数的处理,见名知意,In为输入,Out为输出
    通过使用上下文对象来设置输出的值【.context.SetValue(对象名,值);

调用位置传参方式

需要注意,如果定义的是输入的变量,那这里设置的属性就是传递进来的值,

反之就是传出的值

  1.  

5.调用WCF传递参数并获得返回值

  1.  

使用send发送请求,receive获取信息,这里的receive可以直接右键创建ReceiveReply,会自动帮我们填写一些信息

另外,如果wcf提供的是有返回值的接口,此处是一定要有receive的,反之如果没有返回值这里设置了读取返回信息

  1. 同样会报错,需要注意几个值,如下图,OperationNameWCF公开的方法名,ServiceContractName为契约名。
    还需要设置Endpoint属性,如图。选择使用的协议以及地址
  1.  

参数设置

点击查看参数

选择参数,此处value为传递给wcf的参数名,使用wcf中定义的名称和类型

返回的receive中的设置也是如此,不过需要注意的是此处的参数名称命名规则为W【CF公开的方法名称+Result】

如前图可以看到定义的是GetData,所以此处是【GetDataResult】,可以通过指派,将返回值传递给外部变量

6.主调函数调用活动、传递参数与获取返回值

  1. Activity workflow1 = new Workflow1();
    //使用字典传参
  2. Dictionary<string, object> dic = new Dictionary<string, object>();
  3. dic.Add("tic", "");
  4. //启动活动并获得返回值,返回值也是字典
  5. var result = WorkflowInvoker.Invoke(workflow1,dic);
           //此处的result和resu为定义的返回值
    Console.WriteLine(result["result"].ToString()+
  6. result["resu"].ToString());

7.获取out参数

  1. [Out参数]可在实例的[OnCompleted]事件中用[WorkflowApplicationCompletedEventArgs.Outputs]得到

8.WF请求数据

  1. 可将数据存入InstancePromotedPropertiesTable表中,最多存储64个数据项

实例:下载

下一篇:.net WCF WF4.5 状态机、书签与持久化

.net WCF WF4.5的更多相关文章

  1. .net WCF WF4.5 状态机、书签与持久化

    想看源码请直接翻到最后,使用方式如下图 如果同时需要多个书签可以直接在需要的位置创建书签,会认为是同一个实例. 若需要实现的效果是同时需要好几个部门审核,那么只要在对应的位置同时创建多个书签即可. 编 ...

  2. WCF使用相关

    1.不显示WCF服务主机 在WCF项目属性中的WCF选项卡总关闭下图的选项 2.在其他项目中承载WCF服务 其他加载的操作一致,需要把WCF的endpoint和behavior节点复制到 启动服务的那 ...

  3. [WF4.0 实战] WPF + WCF + WF 打造Hello World(基础篇)

    本篇博客是一个基础的演示样例,也就是一个新手教程吧!让大家熟悉一下WPF + WCF + WF三者的关系!这仅仅是一个基础篇,下篇会继续深入,作为这段时间研究工作流的一个小小总结! 三者关系: WPF ...

  4. 【转】WF4.0实战系列索引

    转自:http://www.cnblogs.com/zhuqil/archive/2010/07/05/wf4-in-action-index.html 此系列的工作流文件案例比较多点,实用性好. W ...

  5. 【转】WF4.0 (基础篇)

    转自:http://www.cnblogs.com/foundation/category/215023.html 作者:WXWinter  ——  兰竹菊梅★春夏秋冬☆ —— wxwinter@16 ...

  6. WF4.0 基础篇 (一)开始使用WF

    来源:https://www.cnblogs.com/caosenianhuan/p/WF.html 最近公司要重新上线一套新的CRM系统,要重整老系统里的业务流模块,团队讨论已微软的workflow ...

  7. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)   ...

  8. 【WCF】使用“用户名/密码”验证的合理方法

    我不敢说俺的方法是最佳方案,反正这世界上很多东西都是变动的,正像老子所说的——“反(返)者,道之动”.以往看到有些文章中说,为每个客户端安装证书嫌麻烦,就直接采用把用户名和密码塞在SOAP头中发送,然 ...

  9. 【WCF】错误协定声明

    在上一篇烂文中,老周给大伙伴们介绍了 IErrorHandler 接口的使用,今天,老周补充一个错误处理的知识点——错误协定. 错误协定与IErrorHandler接口不同,大伙伴们应该记得,上回我们 ...

随机推荐

  1. JavaScript的基本包装类型_String类型

    String类型概述 String在底层字符串是以字符数组的形式保存的 var str = "Hello"; // 在底层其实就是['H','e','l','l','o'] 字符串 ...

  2. Java面试知识点之计算机网络篇(一)

    前言:在Java面试中,计算机网络的知识也是一项重点,因此笔者在此对计算机网络的相关知识进行总结. 1.OSI参考模型 自下而上:物理层(物理介质,比特流).数据链路层(网卡.交换机).网络层(IP协 ...

  3. android studio 定位具体的错误原因

    编译一个数据监测APP的时候出现了报错: Error:Compilation failed; see the compiler error output for details. 在网上查到方法如下: ...

  4. Anaconda的下载与安装

    1.下载地点: 支持国产:https://mirrors.tuna.tsinghua.edu.cn/ Anaconda官网:https://www.anaconda.com/download/ 2.下 ...

  5. 关于CUDA,cuDNN,TF,CUDA驱动版本兼容问题

    实际工作当中,经常维护好几个项目的代码,不同项目依赖的TF版本不一致问题.网上找了好多资料,但是每次遇到的问题都不一样,每次都要去查(就是是一样的问题,解决办法也可能会不一样)每次踩坑无数,今天痛定思 ...

  6. 微信硬件平台(八) 3-0ESP8266向微信服务器请求设备绑定的用户

    1调试助手 请求URL: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=自己微信ID&a ...

  7. 深度学习框架PyTorch一书的学习-第三章-Tensor和autograd-1-Tensor

    参考https://github.com/chenyuntc/pytorch-book/tree/v1.0 希望大家直接到上面的网址去查看代码,下面是本人的笔记 Tensor Tensor可以是一个数 ...

  8. 小米路由器Mesh,信号有多牛?

    导读 现如今随着居住面积的增加,以前可能住在一室一厅,如今二室一厅.三室一厅都有相对应的户型,有的小伙伴甚至住上了越层,这些户型对于路由器来说非常吃力的,毕竟单台路由器的覆盖范围有限.可能大多数人会在 ...

  9. 前向星&链式前向星

    参考博文: https://blog.csdn.net/acdreamers/article/details/16902023 前向星 len[i]以i为起点的边在数组中的存储长度 head[i]以i ...

  10. .NET 通过entity framework报数据库连接错误:ORA-01017: invalid username/password; logon denied

    如题,答案为:[ORA-01017].NET程序连接数据库失败 转载文章内容如下: 遇到问题 使用 C#/.NET 开发的一个客户端程序,需要连接 ORACLE 数据库,使用 Oracle.Manag ...