Welcome

首页 / 软件开发 / WCF / WCF学习(二):服务契约

WCF学习(二):服务契约2012-01-26 博客园 Henry Cui一、服务契约介绍

我个人理解服务契约是一组公开的操作,其中公开的操作(OperationContract)只能定义在方法(Method)上。对于我们要公开的服务我们可以在接口或者类上加上标识ServiceContract。但是我们一般情况下,会把ServiceContract定义在接口上而不是类上,这样有几个好处:

1.方便契约的继承,不同的类型可以去实现相同的契约,重用性高。

2.同一服务可以去实现多个契约。

3.可以随时去修改服务类型,而不需去修改接口。

下面定义一个服务的契约:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;  namespace Service{  [ServiceContract(Name="Service_Calucator",Namespace="Henllyee")]  public interface ICalucator  {    [OperationContract]    int Add(int x, int y);    }}
我们在上面首先定义了一个接口名称为:ICalucator,然后我们要将这个接口公开为服务契约在上面加上属性标识[ServiceContract],其中Name可以为契约指定别名,这样的话,如果我们在客户端遇到相同的接口时可以通过Name来制定别名区别开来。公开的操作为Add方法,在上面标识[OperationContract]即可。