1 using System;
 2 using System.ServiceModel;
 3 using System.ServiceModel.Description;
 4 using System.ServiceModel.Channels;
 5 
 6 namespace ZhiYuan.ServiceProxy
 7 {
 8     public class WCFClient<T>
 9     {
10 
11         public static T CreateService(Binding bind, EndpointAddress address)
12         {
13             ChannelFactory<T> channelFactory = new ChannelFactory<T>(bind);
14             return channelFactory.CreateChannel(address);
15         }
16         public static T CreateService(string uri)
17         {
18 
19             #region TCP/IP方案
20             // NetTcpBinding bind = new NetTcpBinding();
21             // EndpointAddress address = new EndpointAddress("net.tcp://127.0.0.1:1785/Service");
22             // EndpointAddress metaAddress = new EndpointAddress("net.tcp://127.0.0.1:1785/Service/MEX");
23             #endregion
24 
25             BasicHttpBinding bind = new BasicHttpBinding();
26             bind.MaxBufferSize = int.MaxValue;
27             bind.MaxReceivedMessageSize = int.MaxValue;
28             bind.MaxBufferPoolSize = int.MaxValue;
29             bind.ReaderQuotas.MaxArrayLength = int.MaxValue;
30             bind.ReaderQuotas.MaxBytesPerRead = int.MaxValue;
31             bind.ReaderQuotas.MaxDepth = int.MaxValue;
32             bind.ReaderQuotas.MaxNameTableCharCount = int.MaxValue;
33             bind.ReaderQuotas.MaxStringContentLength = int.MaxValue;
34             
35            bind.SendTimeout = new TimeSpan(0,5,60);
36             EndpointAddress address = new EndpointAddress(uri);
37 
38             ChannelFactory<T> channelFactory = new ChannelFactory<T>(bind);
39             return CreateService(bind, address);
40         }
41 
42         /// <summary>
43         /// 采用通道工厂的方式生成客户端服务对象实例
44         /// </summary>
45         /// <param name="bind"></param>
46         /// <param name="address"></param>
47        public   ZhiYuan.ServiceContract.Member.ILoginService CreateLoginService()
48         {
49             return WCFClient<ZhiYuan.ServiceContract.Member.ILoginService>.CreateService("http://localhost:1785/Member/LoginService.svc");
50           
51         }
52         
53 
54        public  ZhiYuan.ServiceContract.Member.IMemberService CreateMemberService()
55        {
56           
57            return WCFClient<ZhiYuan.ServiceContract.Member.IMemberService>.CreateService("http://localhost:1785/Member/MemberService.svc");
58         
59 
60        }
61         
62     }

63 }

知道WCF的地址用工厂通道方式快速调用WCF的更多相关文章

  1. 记录:Web无引用无配置方式动态调用WCF服务

    这几年一直用WebApi较多,最近项目中有个需求比较适合使用WCF,以前也用过JQuery直接调用Wcf的,但是说实话真的忘了… 所以这次解决完还是花几分钟记录一下 WCF服务端:宿主在现有Win服务 ...

  2. WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]

    WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...

  3. WCF实例管理的三种方式

    很多情况下,我们都需要控制wcf服务端对象的初始化方式,用来控制wcf实例在服务端的存活时间. Wcf框架提供了三种创建wcf实例的方式. WCF服务对象实例化基础 在普通的WCF请求和相应过程中,将 ...

  4. [转]学习 WCF (6)--学习调用WCF服务的各种方法

    转自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 作者这篇博文写得很全面. 根据不同的情况,我们可以用不同的方法 ...

  5. 在 Node.js 上调用 WCF Web 服务

    摘要:有时我们需要在WCF中做一些复杂数据处理和逻辑判断等,这时候就需要在NodeJS中调用WCF服务获取数据,这篇文件介绍如何在Node中调用WCF服务获取数据. Node项目中调用WCF服务获取数 ...

  6. 调用WCF服务的几种方式

    首先发布了一个名为PersonService的WCF服务.服务契约如下: [ServiceContract]     public interface IPersonService     {     ...

  7. C#动态调用WCF接口,两种方式任你选。

    写在前面 接触WCF还是它在最初诞生之处,一个分布式应用的巨作. 从开始接触到现在断断续续,真正使用的项目少之又少,更谈不上深入WCF内部实现机制和原理去研究,最近自己做一个项目时用到了WCF. 从这 ...

  8. 创建一个简单的WCF程序2——手动开启/关闭WCF服务与动态调用WCF地址

    一.创建WCF服务器 1.创建WCF服务器的窗体应用程序 打开VS2010,选择文件→新建→项目菜单项,在打开的新建项目对话框中,依次选择Visual C#→Windows→Windows窗体应用程序 ...

  9. wcf系列(一)--- 寄宿方式

    一.自我寄宿(self-hosting) 1.wcf采用基于终结点(Endpoint)的通信手段:终结点由:地址(Address)+绑定(Binding)+契约(Contract)组成:  Enpoi ...

随机推荐

  1. Android自己定义控件--圆形进度条(中间有图diao)

    智能家居越来越流行,在智能家居中我们常要表现一些数据的百分比 圆形度条中间加个图是一种很流行的自己定义View 1.第一步 你首先须要对类进行继承View public class CirclePro ...

  2. iOS边练边学--(Quartz2D)图片添加水印

    一.给图片添加水印的基本步骤 加载图片 手动创建位图上下文 绘制原生的图片 给原生的图片添加文字 生成一张图片给我们,从上下文中获取图片 关闭上下文 二.注意:位图上下文的获取方式跟layer上下文不 ...

  3. WPF教程三:布局之WrapPanel面板

    WrapPanel:环绕面板 WrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够时就会自动调整进行换行,后续排序按照从上至下或从右至左的顺序进行. Orientatio ...

  4. PCL,VTK及其依赖库的编译-十分详细

    所有库的编译教程都很详细,全都上传到百度文库. 1.VS2013-Qt5.5.1-动态编译-VTK7.0.0http://wenku.baidu.com/view/749528a433687e21ae ...

  5. 基于Python的测试驱动开发实战

    近年来测试驱动开发(TDD)受到越来越多的关注.这是一个持续改进的过程,能从一开始就形成规范,帮助提高代码质量.这是切实可行的而非天马行空的. TDD的全过程是非常简单的.借助TDD,代码质量会得到提 ...

  6. REFLECTOR和FILEDISASSEMBLER的下载与使用

    .NET Reflector 下载地址 http://www.aisto.com/roeder/dotnet FileDisassembler 下载地址 http://www.denisbauer.c ...

  7. (转)windows平台时间函数性能比较QueryPerformanceCounter,GetTickCount,ftime,time,GetLocalTime,GetSystemTimeAsFileTime

    执行 10000000 次, 耗时 2258,369 微秒     QueryPerformanceCounter 执行 10000000 次, 耗时 26,347 微秒    GetTickCoun ...

  8. linux -- ubuntu14.10安装gnome桌面环境和dock工具

    ubuntu14.10系统自带Unity桌面环境,但是还是习惯于gnome桌面环境,再加上dock用着就很顺手了.   方法/步骤 首先,按Ctrl+Alt+T,调出终端.在其中输入:sudo apt ...

  9. 比較JS合并数组的各种方法及其优劣

    原文链接:  Combining JS Arrays原文日期: 2014-09-09翻译日期: 2014-09-18翻译人员: 铁锚 本文属于JavaScript的基础技能. 我们将学习结合/合并两个 ...

  10. mac下zephir第一步,安装+hello zephir!

    第一步 安装autoconf re2c automake libtool等依赖,如果没有安装git的记得先安装git brew install autoconf brew install automa ...