服务契约描述了由服务终结点实现的接口操作。服务契约引用消息格式并描述它们是怎么被交换的。消息格式更进一步被数据契约和消息契约描述。这一部分主要涉及由服务契约实现的消息交换。
WCF在设计时和运行时使用服务契约。在设计阶段,它们确定应该在WSDL理暴露为终结点的代码的类。一个使用[ServiceContract]标记的类和使用[OperationContract]标记的类中方法在WSDL中暴露以便于它们可以被客户端访问。类以wsdl:service确定,操作以wsdl:operation确定。在运行时,当WCF分开器接收到消息时,它查看wsdl:operation 的名字来确定类中的以[OperationContract]标记的哪个方法需要接受反序列化消息。图片2.1描述了高层次的代码到WSDL的转换。
图片2.2显示了在图片2.1中显示的同样的转换,但是也清晰的显示了C#与WSDL元素的语法。