转载网络代码.版权归原作者所有.....

客户端调用WCF的几种常用的方式:1普通调用var factory = new DataContent.ServiceReference1.CustomerServiceClient();factory.Open();List<DataContent.ServiceReference1.Customer> lis = factory.GetAllCustomerList();factory.Close();2 异步调用   1  var factory = new DataContent.ServiceReference1.CustomerServiceClient();IAsyncResult anynRsult = factory.BeginGetAllCustomerList(null, null);List<DataContent.ServiceReference1.Customer> lis = factory.EndGetAllCustomerList(anynRsult);factory.Close();       该方法将会阻塞当前线程并等待异步方法的结束,往往不能起到地多线程并发执行应有的作用。我们真正希望的是在异步执行结束后自动回调设定的操作,这样就可以采用回调的方式来实现这样的机制了。

在下面的代码中,我们通过一个匿名方法的形式定义回调操作,由于在回调操用中输出运算结果时需要使用到参与运算的操作数,我们通过BeginGetAllCustomerList方法的最后一个object类型参数实现向回调操作传递数据,在回调操作中通过IAsyncResult对象的AsyncState获得。

          2  var factory = new DataContent.ServiceReference1.CustomerServiceClient();factory.BeginGetAllCustomerList(delegate(IAsyncResult asyncResult){lis = factory.EndGetAllCustomerList(asyncResult);factory.Close();}, null);
     3通信工厂 
      var factory = new ChannelFactory<DataContent.ServiceReference1.ICustomerService>(new BasicHttpBinding(), new EndpointAddress("http://localhost:10625/Service1.svc"));try{var proxy = factory.CreateChannel();using (proxy as IDisposable){return proxy.GetAllCustomerList();}}catch (Exception ex){Console.WriteLine(ex.Message);return new List<DataContent.ServiceReference1.Customer>();}finally{factory.Close();}      4 通过事件注册的方式进行异步服务调用
 var factory = new DataContent.ServiceReference1.CustomerServiceClient();factory.GetAllCustomerListCompleted += (sender, e) =>{lis = e.Result;};factory.GetAllCustomerListAsync();factory.Close();

在这里做个备注:防止下次忘记

转载于:https://www.cnblogs.com/w2011/p/3181946.html

客户端调用 WCF 的几种方式相关推荐

  1. WCF 入门之旅(4): 怎样用客户端调用WCF服务

    WCF 入门之旅(4): 怎样用客户端调用WCF服务 前面的demo已经能够跑起来,现在开始考虑用客户端来测试所写的应用了,首先用个普通的应用程序来调用所写的wcf服务吧.其实最后运行wcf服务后的页 ...

  2. 聊聊 Python 调用 JS 的几种方式,你都知道吗?

    1. 前言 日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页源代码 通过调式,一层层剥离出关键的 JS 代码,使用 Python 去执行这段代码,得出参数加密前后的 Py ...

  3. python中调用API的几种方式

    python中调用API的几种方式: urllib2 httplib2 pycurl requests urllib2 import urllib2, urllib github_url ='http ...

  4. Vue组件之间传值/调用方法的几种方式

    组件之间传值/调用方法的几种方式 (一)父组件向子组件传值==props 1.在父组件中使用子组件的地方绑定数据 <children :message="message"&g ...

  5. python调用js接口_最全总结!聊聊 Python 调用 JS 的几种方式

    原标题:最全总结!聊聊 Python 调用 JS 的几种方式 作者 | 星安果 来源 | AirPython 1. 前言 日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页 ...

  6. Python 调用 JS 的几种方式

    前言 日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页源代码 通过调式,一层层剥离出关键的 JS 代码,使用 Python 去执行这段代码,得出参数加密前后的 Pytho ...

  7. android客户端认证服务端的两种方式

    Your app shouldn't suffer SSL's problems http://thoughtcrime.org/blog/authenticity-is-broken-in-ssl- ...

  8. vue 调用webservice_调用webService的几种方式

    转自:http://blog.csdn.net/u011165335/article/details/51345224 一.概览 方式1: HttpClient:可以用来调用webservie服务,也 ...

  9. 转载——Java与WCF交互(一):Java客户端调用WCF服务

    最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...

最新文章

  1. 机器学习——模型测试与评估方法与指标
  2. 资源|2018年14个顶级AI和机器学习会议名录
  3. json jsono wsdl_记录一下json的生成
  4. Linux运维中如何进行网页加密?
  5. LeetCode Add Binary(二进制加法)
  6. 用SRS和FFMPEG进行直播流转码
  7. 信息系统项目管理师-质量管理知识点
  8. windows gtk+ 开发环境搭建
  9. JavaScript toLocaleString()时间转化为字符串
  10. java 数组 反射_【译】10. Java反射——数组
  11. Jmeter (三十)jmeter+ant+jenkins持续集成
  12. mouse_event() 控制鼠标操作
  13. Grub2引导grub4dos0.4.4再引导WinPE
  14. python计算消费额_11、Python 数据分析-用户消费行为分析
  15. 方舟生存进化服务器存档位置,方舟生存进化如何转移存档
  16. AWash: Handwashing Assistance for the Elderly with Dementia via Wearables
  17. AWS服务器,如何设置成密码登录
  18. 传统企业PaaS平台功能设计与业务上云思考
  19. 安装Mariadb columnStore(10.3版本)
  20. go语言标准库之flag

热门文章

  1. 【HDU - 5468】Puzzled Elena(容斥原理,dfs序,数学,素因子分解,有坑)
  2. 【POJ - 2001 】Shortest Prefixes (字典树,查询重复前缀区间)
  3. 【 HDU - 1525 】Euclid's Game(较难找规律,玄学博弈,分析必败点必胜点)
  4. 怎么表示一个PHP语句块,php switch语句多个值匹配同一代码块应用示例
  5. java jsp导出pdf文件_JSP页面导出PDF格式文件
  6. 编程题【Math类】计算类
  7. 我的世界服务器自定义欢迎界面,我的世界启动界面如何修改 diy修改启动界面攻略...
  8. android中资源文件的两种访问方式,Android_Android学习笔记-保存文件(Saving Files),Android设备有两种文件存储区域 - phpStudy...
  9. 快速幂实现pow函数(从二分和二进制两种角度理解快速幂)
  10. python模块(5)-Matplotlib 简易使用教程