客户端调用 WCF 的几种方式
转载网络代码.版权归原作者所有..... 客户端调用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 的几种方式相关推荐
- WCF 入门之旅(4): 怎样用客户端调用WCF服务
WCF 入门之旅(4): 怎样用客户端调用WCF服务 前面的demo已经能够跑起来,现在开始考虑用客户端来测试所写的应用了,首先用个普通的应用程序来调用所写的wcf服务吧.其实最后运行wcf服务后的页 ...
- 聊聊 Python 调用 JS 的几种方式,你都知道吗?
1. 前言 日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页源代码 通过调式,一层层剥离出关键的 JS 代码,使用 Python 去执行这段代码,得出参数加密前后的 Py ...
- python中调用API的几种方式
python中调用API的几种方式: urllib2 httplib2 pycurl requests urllib2 import urllib2, urllib github_url ='http ...
- Vue组件之间传值/调用方法的几种方式
组件之间传值/调用方法的几种方式 (一)父组件向子组件传值==props 1.在父组件中使用子组件的地方绑定数据 <children :message="message"&g ...
- python调用js接口_最全总结!聊聊 Python 调用 JS 的几种方式
原标题:最全总结!聊聊 Python 调用 JS 的几种方式 作者 | 星安果 来源 | AirPython 1. 前言 日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页 ...
- Python 调用 JS 的几种方式
前言 日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页源代码 通过调式,一层层剥离出关键的 JS 代码,使用 Python 去执行这段代码,得出参数加密前后的 Pytho ...
- android客户端认证服务端的两种方式
Your app shouldn't suffer SSL's problems http://thoughtcrime.org/blog/authenticity-is-broken-in-ssl- ...
- vue 调用webservice_调用webService的几种方式
转自:http://blog.csdn.net/u011165335/article/details/51345224 一.概览 方式1: HttpClient:可以用来调用webservie服务,也 ...
- 转载——Java与WCF交互(一):Java客户端调用WCF服务
最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...
最新文章
- 机器学习——模型测试与评估方法与指标
- 资源|2018年14个顶级AI和机器学习会议名录
- json jsono wsdl_记录一下json的生成
- Linux运维中如何进行网页加密?
- LeetCode Add Binary(二进制加法)
- 用SRS和FFMPEG进行直播流转码
- 信息系统项目管理师-质量管理知识点
- windows gtk+ 开发环境搭建
- JavaScript toLocaleString()时间转化为字符串
- java 数组 反射_【译】10. Java反射——数组
- Jmeter (三十)jmeter+ant+jenkins持续集成
- mouse_event() 控制鼠标操作
- Grub2引导grub4dos0.4.4再引导WinPE
- python计算消费额_11、Python 数据分析-用户消费行为分析
- 方舟生存进化服务器存档位置,方舟生存进化如何转移存档
- AWash: Handwashing Assistance for the Elderly with Dementia via Wearables
- AWS服务器,如何设置成密码登录
- 传统企业PaaS平台功能设计与业务上云思考
- 安装Mariadb columnStore(10.3版本)
- go语言标准库之flag
热门文章
- 【HDU - 5468】Puzzled Elena(容斥原理,dfs序,数学,素因子分解,有坑)
- 【POJ - 2001 】Shortest Prefixes (字典树,查询重复前缀区间)
- 【 HDU - 1525 】Euclid's Game(较难找规律,玄学博弈,分析必败点必胜点)
- 怎么表示一个PHP语句块,php switch语句多个值匹配同一代码块应用示例
- java jsp导出pdf文件_JSP页面导出PDF格式文件
- 编程题【Math类】计算类
- 我的世界服务器自定义欢迎界面,我的世界启动界面如何修改 diy修改启动界面攻略...
- android中资源文件的两种访问方式,Android_Android学习笔记-保存文件(Saving Files),Android设备有两种文件存储区域 - phpStudy...
- 快速幂实现pow函数(从二分和二进制两种角度理解快速幂)
- python模块(5)-Matplotlib 简易使用教程