契约有几种?都有什么用途

  • 用于定义服务操作的服务契约:Service Contract

        这种级别的契约又包括两种:Service Contract 和 Operation Contract

        ServiceContract用于类或者结构上,用于指示WCF此类或者结构能够被远程调用,而OperationContract 用于类中的方法上,用于指示WCF该方法可被远程调用。

  • 用于自定义数据结构的数据契约:Data Contract

        数据契约也分为两种:DataContract和Datamember. DataContract用于类或者结构上,指示WCF此类或者结构能够被序列化传输,而DataMember只能用在类或者结构的属性

       或者字段上,指示WCF 该属性或者字段能够被序列化传输。

  • 用于自定义错误异常的异常契约:Fault Contract

        FaultContract用于自定义错误异常的处理方式,默认情况下,当服务端抛出异常的时候,客户端能接受到异常信息的描述,但这些描述往往格式统一,有时比较难以从中获取有用的

        信息,此时,我们可以自定义异常消息的格式,将我们关心的消息放到错误消息中传递给客户端,此时需要在方法上添加自定义一个错误消息的类,然后在要处理异常的函数上加上

        FaultContract,并将异常信息指示返回为自定义格式。

  • 用于控制消息格式的消息契约:Message Contract

        简单的说,它能自定义消息格式,包括消息头,消息体,还能指示是否对消息内容进行加密和签名。

posted on 2011-03-18 18:07  默斋  阅读(138)  评论(0)    收藏  举报