关闭

WCF第一步

1134人阅读 评论(0) 收藏 举报

本文是在看了金旭亮老师的WCF之后自己写的,更详细和深入的内容请参照金旭亮老师的博客。

本实例是两个控制台应用程序,服务器端提供一个返回Hello World的服务,客户端调用并打印。

 

1. 首先建立两个控制台应用程序,Hello Client 和 Hello Server(最好在同一项目解决方案中,方便管理),对他们两个项目都添加System.ServiceModel的引用。

2. 构造服务器端的服务,首先构造服务器端的契约,用一个接口来实现,代码如下。文件名为IHelloService.cs,ServiceContract和OperationContract以Attribute方式声明契约,契约对象和契约的操作。对于契约的理解请参考如下网址:

http://apps.hi.baidu.com/share/detail/15073039

 

然后在服务器端写一个实现契约的提供服务的类,此类的对象实现具体的服务,简单说就是当客户端请求服务时,服务对象被创建并提供服务,代码如下:

 

完成之后在服务器端的主函数中来创建服务对象,服务对象由服务宿主。每个服务宿主对象ServiceHost对应一个服务,当客户端发送请求指示,服务宿主创建服务对象。然后通过添加服务终结点监听端口,等待客户端请求。其中new BasicHttpBinding()表示创建一个基本绑定,绑定在WCF中定义了客户端如何同服务器端通信,比如传输协议,消息编码。代码如下:

 

3. 创建客户端对象,调用服务。将IHelloService.cs对象复制到HelloClient项目下,并在项目中引用HelloServer的命名空间,以使用IHelloService契约。客户端的所有代码如下:

 

客户端需要是一个服务代理对象来调用服务,服务代理对象由通道工厂ChannelFactory创建。通过服务代理类调用服务器端提供的服务。

 

再次声明本文是基本上按照金旭亮老师的教程来写的,如果大家想进一步了解,请访问金旭亮老师的blog。

 

具体源码从这里下载:

http://download.csdn.net/source/2995472

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1421181次
    • 积分:11076
    • 等级:
    • 排名:第1479名
    • 原创:106篇
    • 转载:88篇
    • 译文:0篇
    • 评论:234条
    最新评论