本文是在看了金旭亮老师的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。
具体源码从这里下载:

8840

被折叠的 条评论
为什么被折叠?



