第二章:WCF基础(3)

原文:http://www.wcftutorial.net/Introduction-to-WCF.aspx

契约和服务托管Contracts and Service Host

契约Contracts
在WCF中,所有的服务是通过契约来公布出去的,契约是平台无关性的,用来描述服务的作用,在WCF中有4种主要的契约。

服务契约Service Contract
服务契约描述该服务可以提供的操作,例如,一个通过邮编号来确认城市气温的服务,这个服务就是服务契约,可以通过特性服务和操作契约属性。

通过服务契约来了解更多

数据契约Data Contract
数据契约描述了公布给客户端的数据类型,定义了服务接受和响应的数据类型,int,string这些类型因为在XML schema中定义过了,所以客户端可以识别,但是自定义的类或者数据类型没办法被客户端识别,比如,Employee类型,通过使用数据契约,可以通知客户端接受或者返回自定义类型。

通过数据契约来了解更多

消息契约Message Contract
WCF使用默认的SOAP协议来使客户端和服务端进行通信,如果这不符合你的需求,你可以自定义消息格式,可以使用消息契约属性来实现。

通过消息契约来了解更多

失败契约Fault Contract
加入在客户端应用的调用中,服务端出现了问题,我希望得到出现问题的具体原因,我如何得到这个错误信息呢?为此,我们得使用错误契约,错误契约在发生错误的时候负责提供文档给客户端,这将对我们很容易了解错误的发生原因。

通过错误契约来了解更多

服务托管
服务托管对象Service Host是托管WCF服务的一个进程,并且注册终结点,它将会装载文件点的配置文件,适用setting,并且监听请求,System.ServiceModel.ServiceHost命名空间有这些类型,这些对象由WCF自托管服务创建。

下面这个例子是控制台应用程序使用自托管创建WCF服务。

//Creating uri for the hosting the service  
Uri uri = new Uri("http://localhost/CategoryService");  
//Creating the host object for MathService  
ServiceHost host = new ServiceHost(typeof(CategoryService), uri);  
//Adding endpoint to the Host object  
host.AddServiceEndpoint(typeof(ICategoryService),new WSHttpBinding(), uri);  
host.Open(); //Hosting the Service  
Console.WriteLine("Waiting for client invocations");  
Console.ReadLine();  
host.Close();

猜你喜欢

转载自foreversky12.iteye.com/blog/2304735