首页 > 代码库 > 第二章-服务契约与数据契约

第二章-服务契约与数据契约

  1. 服务契约 

服务契约定义了服务向外界公开的功能,这些功能表现为服务操作,在SOAk ,经常需要交接一组SOAP消息,而这些消息的模式通常是在服务契约中定义的。服务契约还可以进一步定义每个服务操作的消息交换模式(请求-响应模式,单工模式,双工模式) 

 

 

  1. 数据契约 

通常,需要把一个或多个参数传递给一个服务操作,并等待服务操作返回一个值。消息参数的结构在数据契约中被解释为XSD Schema,而XSD Schema是WSDL文档的一问你。数据契约定义了客户端与服务之间信息交接的结构和内容。 

 

  1. 消息契约 

 

消息契约属于高级功能,使用它可以对SOAP头和SOAP体进行更好的控制。消息契约直接与SOAP消息交互,而不只是与消息体交互,当使用数据契约而不使用消息契约时,就属于这种情况 

 

  1. 契约与代码 

 

 

  1. 汽车租赁服务-----实现示例 

 

 

  1. 服务契约与数据契约的版本控制 

 

双向版本控制,IExtensibleDataObject接口并定义必不可少的ExtensionDataObject成员。如果DataContractSerializer序列化器在XML文档中检测到未知的元素,地么在反序列化时,会把写入ExtensionDataObject属性包。当再次引用ExtensiondataObject对象的内容时,它里的内容还将保留,因此在数据契约的不同版本之前,数据不会丢失。 

 

如果不同模式之前没有必要严格保持一致,则只需要注意以下几点: 

  • 可以在任何时候添加新方法 

  • 可以不删除任何己存在的方法 

  • 参数的数据类型必需必需保持兼容 

第二章-服务契约与数据契约