WCF服务端已经创建好了以后,客户端可以直接通过选择服务引用,直接生成客户端的代理类,进而调用服务端的服务。其实说到底,服务端和客户端的通行就是通过终结点,然后在服务器端和客户端建立通信通道完成数据的交互。所以我们可以使用通信工厂ChanelFactory,自己手动创建代理类

1.通过服务端的WSDL,我们可以很容易的获取到契约,虽然具体的实现客户端是看不到的,但是拥有契约就足够了

2.根据上面的信息,我们可以创建出和服务器端相同的契约,契约必须保证和服务器端完全一致,参数的名字a,b也必须保证一致,否则出问题(已经测试过),然后就可以根据契约接口(确定调用的方法)和终结点(确定通道)创建出通信工厂

3.然后使用chanel通信通道就可以直接调用服务的方法,完整的代码如下

namespace Client1
{
class Program
{
static void Main(string[] args)
{
string a = Console.ReadLine();
string b = Console.ReadLine();
double one = double.Parse(a);
double two = double.Parse(b);
//这是寄宿在控制台上的服务,如果是IIS上http://localhost:23493/WCFTestService.svc
EndpointAddress address = new EndpointAddress("http://localhost:9000/");
BasicHttpBinding bind = new BasicHttpBinding();
ChannelFactory<IWCFTestService> factory = new ChannelFactory<IWCFTestService>(bind,address);
IWCFTestService chanel = factory.CreateChannel();
try
{
double result = chanel.Add(one, two);
Console.WriteLine(result);
((IClientChannel)chanel).Close();
} catch (CommunicationException ex)
{
((IClientChannel)chanel).Abort();
}
catch(TimeoutException ex)
{
((IClientChannel)chanel).Abort();
} Console.ReadLine();
}
}
[ServiceContract]
public interface IWCFTestService
{
[OperationContract]
double Add(double a, double b);
}
}

4.实现的效果如下

WCF之通信工厂的简单使用的更多相关文章

  1. 无废话WCF入门教程六[一个简单的Demo]

    一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...

  2. WCF揭秘(一)——简单的WCF开发实例

    一.WCF是什么 WCF是微软为了实现各个开发平台之间的无疑缝连接而开发一种崭新工具,它是为分布式处理而开发.WCF将DCOM.Remoting.Web Service.WSE.MSMQ.AJAX服务 ...

  3. 【转】WCF入门教程六[一个简单的Demo]

    一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...

  4. Java设计模式之-----工厂模式(简单工厂,抽象工厂)

    一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...

  5. WCF入门教程五[WCF的通信模式]

    一.概述 WCF在通信过程中有三种模式:请求与答复.单向.双工通信.以下我们一一介绍. 二.请求与答复模式 描述: 客户端发送请求,然后一直等待服务端的响应(异步调用除外),期间处于假死状态,直到服务 ...

  6. 无废话WCF入门教程五[WCF的通信模式]

    一.概述 WCF在通信过程中有三种模式:请求与答复.单向.双工通信.以下我们一一介绍. 二.请求与答复模式 描述: 客户端发送请求,然后一直等待服务端的响应(异步调用除外),期间处于假死状态,直到服务 ...

  7. WCF入门, 到创建一个简单的WCF应用程序

    什么是WCF?  WCF, 英文全称(windows Communication Foundation) , 即为windows通讯平台. windows想到这里大家都知道了 , WCF也正是由微软公 ...

  8. 详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂) v阅读目录

    1楼留头头大神:http://www.cnblogs.com/toutou/p/4899388.html   v阅读目录 v写在前面 v简单工厂模式 v工厂方法模式 v抽象工厂模式 v博客总结 v博客 ...

  9. C#网络编程TCP通信实例程序简单设计

    C#网络编程TCP通信实例程序简单设计 采用自带 TcpClient和TcpListener设计一个Tcp通信的例子 只实现了TCP通信 通信程序截图: 压力测试服务端截图: 俩个客户端链接服务端测试 ...

随机推荐

  1. javascript的特殊条件语句

    摘要: ​ 由于javascript语言的特殊性导致它有很多特殊的条件判断,下面我列出了一些特殊的条件判断语句和他们对应的结果. if(condition) { console.log(true); ...

  2. Hibernate_day03讲义_使用Hibernate完成多对多的关系映射并操作

  3. centos 安装五笔

    没有五笔怎么打字!ctrl + alt + [F2 - F6]进入控制台模式f2 - f6是五个控制台,想进哪个进哪个!进入之后用alt + [F2 - F6]来切换不同的控制台输入root / 密码 ...

  4. C语言的声明的优先级规则

    C语言的声明的优先级规则如下: A 声明从它的名字开始读取,然后按照优先级顺序依次读取 B 优先级从高到低依次是:   B.1 声明中被括号括起来的那一部分   B.2 后缀操作符[圆括号 ()表示这 ...

  5. 【RF库Built-In测试】Catenate

    Name:CatenateSource:BuiltIn <test library>Arguments:[ *items ]Catenates the given items togeth ...

  6. 【RF库测试】Encode String To Bytes&Decode Bytes To String& should be string&should be unicode string &should not be string

    场景1:判断类型 r ${d} set variable \xba\xcb\xbc\xf5\xcd\xa8\xb9\xfd #核减通过 Run Keyword And Continue On Fail ...

  7. iOS - UICollectionView 瀑布流 添加表头视图的坑

    UICollectionView 瀑布流 添加表头视图的坑 首先是,需求加了个头视图在顶部,在collectionView中的头视图跟TableView的不一样,TableView的表头只要设置tab ...

  8. web_qianduan

    <!DOCTYPE html><html lang="zh"><head><meta charset="UTF-8"& ...

  9. php 建立 搜索 分词树

    <?php /** * @author: xiaojiang 20140107 * php 建立分词树 * */ class Tree{ public $w = ''; public $subT ...

  10. Win8交互UX——鼠标交互

    针对触摸输入优化 Window 应用商店应用设计,并在默认情况下获得基本的鼠标支持. 设计和构建用户可以通过鼠标交互的 Windows 应用商店应用. 鼠标输入最适合那些需要精确指向和单击的用户交互. ...