• [WF4.0 现实] WF4.0 Receive && Send


        写这篇博客的目的正是由于这个receive和send使用一直很困惑,有应用程序的多个实例,但整体感觉很模糊认识。每一次遇到,再要弄清楚。如今将这send和receive结合我们之前做的实例(未使用WCF)来理解,事实上这两个看似深奥的东东,和我们已经掌握的工作流知识没有什么大的区别!

     

    以下就结合着之前的工作流的知识和send,receive来对照一下:

     

    由于一个流程不可能是不间断的运行,再次启动时须要从当时的断点继续

    实现方式两种:

     

    对照:

    1,Receive

    当我们client调用Receive的方法时。就可以继续进行这个流程。

    2,BookMark

    client调用WorkFlowProcess.RunInstance(info),就可以继续进行,可是我们在暂停之前须要运行Wait流,即创建BookMark。下次从书签处继续运行这个流程

     

     

    以下简介一下Receive的使用方式,对于BookMark的创建在申请审批中已经有所介绍:

     

    Receive中的方法,代理类会自己主动生成该方法---client调用代理类生成的方法---相当于启动receive的方法

     

    receive的返回(命令窗体的返回):调用的方法会传guid等參数,然后将这写參数赋给工作流定义的变量_guid



    或者receive返回到client:


          

    与Receive相应的另一个Send:

     

    Send中的方法。能够调用webServiceWCF服务中的方法,以下的这个说明调用的是webService中的提供的方法,在服务端创建了接口和对应的实现类


                    

     


    返回值后缀+result




    client:

     private void button1_Click(object sender, RoutedEventArgs e)
            {
                IDictionary<string, object> results = WorkflowInvoker.Invoke(new WFProject.Activity1());
                string result = results["returnView"].ToString();
                MessageBox.Show(result);
                
            }
    

    对照:

    1send方式:消息

    2。代码活动(CodeActivity:用户自己定义的活动结点

     

    通过上述的说明,我们不难发现事实上这个Send的使用方式和我们之前自己写的CodeActivity(代码结点)没什么差别。仅仅是它是以消息的方式传递而已。

     

    总结:就像我在文章开头所说的,对于新的知识我们总是非常难掌握,这时就须要和我们已有的知识相关联(编制知识网),拿sendreceive来说,由于和已有的知识进行了比較学习,这样当再次遇到的时候我们就能够非常好的理解,也就不会出现每次都当做新的知识去学习一遍!

     

    学习不不过知识的罗列,而在于对知识的总结过程!




    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    WSS 扩展文件夹的属性如何给文件夹添加扩展字段
    SharePoint 打开文档附件不弹出提示框
    SharePoint2010 安装时报“未能启动数据库服务 MSSQL$Sharepoint"解决办法
    常见问题
    sharepoint 关于pdf格式在线打开
    ASP.NET 2.0 连接Sql Server 2005报错 [DBNETLIB][ConnectionOpen (Invalid Instance()).]无效的连线。
    <转>SQL Server 2008 R2十大新特性解析
    windows查看端口占用情况
    SQL Server适用脚本收集一
    信息系统中用户的域AD认证功能
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4634801.html
Copyright © 2020-2023  润新知