.net WCF WF4.5
花了两天时间学习使用WF,把一些遇到的问题记录下来,使用的环境是VS2017,网上的资料普遍太老了
需要注意,如果使用多项目同时启动的方式需要把WCF调整到WF启动顺序之上
1.怎么使用代码活动
新建代码活动,重新生成解决方案
随后自己的代码活动便会出现在工具箱中
如下图
工具箱名称为WF项目名称
随后拖入活动中使用即可
2.使用switch时注意不加双引号,见图
编程习惯所以一开始加上双引号结果无法正常运行,然后鬼使神差的去掉了引号就可以了,
不明所以,望周知,感谢

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

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

命名空间,一看便知

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

调用位置传参方式
需要注意,如果定义的是输入的变量,那这里设置的属性就是传递进来的值,
反之就是传出的值

5.调用WCF传递参数并获得返回值
使用send发送请求,receive获取信息,这里的receive可以直接右键创建ReceiveReply,会自动帮我们填写一些信息
另外,如果wcf提供的是有返回值的接口,此处是一定要有receive的,反之如果没有返回值这里设置了读取返回信息
同样会报错,需要注意几个值,如下图,OperationName为WCF公开的方法名,ServiceContractName为契约名。
还需要设置Endpoint属性,如图。选择使用的协议以及地址

参数设置
点击查看参数

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

返回的receive中的设置也是如此,不过需要注意的是此处的参数名称命名规则为W【CF公开的方法名称+Result】
如前图可以看到定义的是GetData,所以此处是【GetDataResult】,可以通过指派,将返回值传递给外部变量

6.主调函数调用活动、传递参数与获取返回值
Activity workflow1 = new Workflow1();
//使用字典传参
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("tic", "");
//启动活动并获得返回值,返回值也是字典
var result = WorkflowInvoker.Invoke(workflow1,dic);
//此处的result和resu为定义的返回值
Console.WriteLine(result["result"].ToString()+
result["resu"].ToString());
7.获取out参数
[Out参数]可在实例的[OnCompleted]事件中用[WorkflowApplicationCompletedEventArgs.Outputs]得到
8.WF请求数据
可将数据存入InstancePromotedPropertiesTable表中,最多存储64个数据项
实例:下载
.net WCF WF4.5的更多相关文章
- .net WCF WF4.5 状态机、书签与持久化
想看源码请直接翻到最后,使用方式如下图 如果同时需要多个书签可以直接在需要的位置创建书签,会认为是同一个实例. 若需要实现的效果是同时需要好几个部门审核,那么只要在对应的位置同时创建多个书签即可. 编 ...
- WCF使用相关
1.不显示WCF服务主机 在WCF项目属性中的WCF选项卡总关闭下图的选项 2.在其他项目中承载WCF服务 其他加载的操作一致,需要把WCF的endpoint和behavior节点复制到 启动服务的那 ...
- [WF4.0 实战] WPF + WCF + WF 打造Hello World(基础篇)
本篇博客是一个基础的演示样例,也就是一个新手教程吧!让大家熟悉一下WPF + WCF + WF三者的关系!这仅仅是一个基础篇,下篇会继续深入,作为这段时间研究工作流的一个小小总结! 三者关系: WPF ...
- 【转】WF4.0实战系列索引
转自:http://www.cnblogs.com/zhuqil/archive/2010/07/05/wf4-in-action-index.html 此系列的工作流文件案例比较多点,实用性好. W ...
- 【转】WF4.0 (基础篇)
转自:http://www.cnblogs.com/foundation/category/215023.html 作者:WXWinter —— 兰竹菊梅★春夏秋冬☆ —— wxwinter@16 ...
- WF4.0 基础篇 (一)开始使用WF
来源:https://www.cnblogs.com/caosenianhuan/p/WF.html 最近公司要重新上线一套新的CRM系统,要重整老系统里的业务流模块,团队讨论已微软的workflow ...
- WCF学习之旅—第三个示例之四(三十)
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) WCF学习之旅—第三个示例之三(二十九) ...
- 【WCF】使用“用户名/密码”验证的合理方法
我不敢说俺的方法是最佳方案,反正这世界上很多东西都是变动的,正像老子所说的——“反(返)者,道之动”.以往看到有些文章中说,为每个客户端安装证书嫌麻烦,就直接采用把用户名和密码塞在SOAP头中发送,然 ...
- 【WCF】错误协定声明
在上一篇烂文中,老周给大伙伴们介绍了 IErrorHandler 接口的使用,今天,老周补充一个错误处理的知识点——错误协定. 错误协定与IErrorHandler接口不同,大伙伴们应该记得,上回我们 ...
随机推荐
- centos7如何安装gcc5.4
由于需要使用到cilk plus和std=c++14,所以决定将编译器升级. 基本教程如下: 1.下载GCC源码: wget ftp://mirrors.kernel.org/gnu/gcc/gcc- ...
- SAP S/4嵌入式分析——虚拟数据模型(VDM)
在本文中,我会通过CDS视图来介绍虚拟数据模型(Virtual Data Model,以下简称VDM). 在SAP HANA平台出现后,SAP的业务应用开发模式已经产生了变化,新的经验法则是:尽可能在 ...
- Angular四大核心特性
Angular四大核心特性 Angular四大核心特性理论概述 MVC模式:它目的是为了分离视图.模型和控制器而设计出来的:其中数据模型用来储存数据,视图用来向用户展示应用程序,控制器充当模型和视图之 ...
- 在Linux上编译Hadoop-2.4.0实践与总结
问题导读: 1.编译源码前需要安装哪些软件? 2.安装之后该如何设置环境变量? 3.为什么不要使用JDK1.8? 4.mvn package -Pdist -DskipTests -Dtar的作用是什 ...
- MySQL高级知识(三)——索引
前言:索引在sql调优部分占据着重要的位置,了解并深入索引对我们来说也是非常重要的.本篇主要介绍MySQL中索引的相关知识点. 1.索引是什么 MySQL官方对索引的定义:索引(Index)是帮助My ...
- dicom学习文章
https://blog.csdn.net/column/details/dicom.html https://blog.csdn.net/zssureqh/article/details/49231 ...
- 洛谷P2845-Switching on the Lights 开关灯
Problem 洛谷P2845-Switching on the Lights 开关灯 Accept: 154 Submit: 499Time Limit: 1000 mSec Memor ...
- ActiveMQ的作用总结(应用场景及优势)
业务场景说明: 消息队列在大型电子商务类网站,如京东.淘宝.去哪儿等网站有着深入的应用, 队列的主要作用是消除高并发访问高峰,加快网站的响应速度. 在不使用消息队列的情况下,用户的请求数据直接写入数据 ...
- Visual Studio 2013 编译 64 位 Python 的 C 扩展 (使用 PyObject 包装)
对于 32 位 Python 的 C 扩展,以前用过 mingW32 编译, 但是 mingW32 不支持 64 位 Python 的 C 扩展编译,详情可见 stackoverflow,这位前辈的大 ...
- pyspider环境部署1--python3安装
爬虫是一个既好玩又好用的东西,接触它有1年多了,了解一些,算不上精通.爬过新闻.微信公众号,主要用pyspider,scrapy也了解过,python2和3都尝试过.公司业务规模不大,基于 pytho ...



