无配置WCF客户端的一个简单到令人发指的实现方法
来源:互联网 发布:lol进游戏无法连接网络 编辑:程序博客网 时间:2024/05/14 18:05
因为项目比较大,接口一大堆,同时也是为了模块间完全解耦(只依赖Common),只能是采用多个WCF服务类库的方案。这样带来的问题就是上帝都不知道在配置文件中到底需要配置多少个Endpoint!理论上是一个模块一个Endpoint,但问题是没有人知道今后这个系统会有哪些模块。于是,只能是不要配置文件了。
为了实现在代码中配置WCF客户端,废了好几天的时间,看了无数的文章,尝试了N种方法。。。。。结果,因为一次偶然的bug,发现了这个真的让人欲哭无泪的、天理不容的、简单到令人发指的方法!!!啥都不说了,贴代码。
#region 字段声明 private EndpointAddress _Address; private NetTcpBinding _Binding = new NetTcpBinding(); private BaseService.BaseClient _Client; #endregion #region 构造函数 public Login() { //从配置文件读取地址和端口设置 _BaseAddress = String.Format("net.tcp://{0}:{1}/", Config.BaseAddress(), Config.Port()); _Address = new EndpointAddress(_BaseAddress + "MainForm");//为不同的服务加上相应的路径,这样多个服务就可以使用同一个端口 _Binding.Security.Mode = SecurityMode.None; _Binding.MaxReceivedMessageSize = 1048576; _Binding.ReaderQuotas.MaxStringContentLength = 16777216; _Binding.ReaderQuotas.MaxArrayLength = 16777216; InitializeComponent(); } #endregion private void InitOrgTree() { _Client = new BaseService.BaseClient(_Binding, _Address); _OrgList = _Client.OrgTreeList(); _MemberList = _Client.GetMemberList(); _Client.Close(); }简单说明下,真的很简单。。。申明两个变量,分别是_Address和_Binding,_Binding的类型需要根据你所使用的网络协议,用对应的类型去声明。
然后给_Binding设置一些需要设置的属性。最后,在实例化xxx(取决于添加服务引用时输入的名字)Client方法里面传入这两个参数就行了。
什么反射!什么工厂!!都弱爆了有木有!!!
0 0
- 无配置WCF客户端的一个简单到令人发指的实现方法
- UIActivityIndicatorView,一个名字长到令人发指的控件
- WCF----双工模式服务端回调客户端方法时无响应,“发送到 http://***/User.svc 的请求操作在配置的超时内未收到回复”
- 无废话WCF入门教程六[一个简单的Demo]
- 无废话WCF入门教程六[一个简单的Demo]
- 无废话WCF入门教程六[一个简单的Demo]
- 无废话WCF入门教程六[一个简单的Demo]
- 无废话WCF入门教程六[一个简单的Demo]
- 无废话WCF入门教程六[一个简单的Demo]
- WCF的简单实例(手写代码实现)--客户端
- 强大到令人发指的代码浏览分析工具understand
- (WCF) 二、一个简单的WCF例子
- 为无状态 Session Bean 部署一个简单的客户端
- 一个简单的WCF示例
- 一个简单的WCF实例
- 创建一个简单的WCF
- wcf客户端和服务器端的简单通信
- 对WCF客户端调用的简单封装
- 编程之美--最短摘要的生成
- 子页面调用父页面中的方法
- 7个Web前端极其精美的动画效果模板
- volatile与transient
- centos 5.8 安装 jdk 1.7
- 无配置WCF客户端的一个简单到令人发指的实现方法
- cocos2d-x 从onEnter、onExit、 引用计数 谈内存泄露问题
- App内购
- erlang性能分析及进程监控工具
- HTML5 05 Canvas实例 闹钟
- UICollectionView的使用【附demo】
- poj 2406 Power Strings
- HDU 1707 Spring-outing Decision(输出课程表是否与假期冲突)
- 黑马程序员—修改各个文件夹下的文件的后缀名