正如上一篇文章所见,我们需要一个地址、绑定和契约来完成WCF的ABC,我们首先由契约开始。
契约要通过一个类来明确地定义,在类的上面你需要添加[ServiceContract] 这个属性,在你的服务里所有你想要显示的方法你需要加[OperationContract]这个属性,表示这个方法在服务里能被调用。
HelloComputer() 将不会被用户访问到,因为它没有用属性标识,但是HelloWorld() 就可以被调用,尽管它是Private的。
Interfaces
然而,我们更喜欢为我们的契约定义一个接口,用实际的服务来完成接口,那是因为:
1. 接口可以扩展/继承其他的接口。
2. 一个单独的类可以完成多个接口。
3. 你可以修改服务的实现类而不需要破坏契约。
4. 你可以升级你的服务通过旧的和新的接口。
最好是有一个接口和一个实现类,在接口里属性也必须被指定。
在下一篇文章中我将介绍如何宿主一个服务,不久以后我会用到这个服务,并且我将介绍更多关于契约和版本控制的东西。