• 有关WCF的契约问题


    WCF中的契约包括4种

    数据契约

    DataContract ->DataMember

    服务契约

    ServiceContract-> OperactionContract

    消息契约

    MessageContract

    异常契约

    FaultContract

    用于定义服务操作的服务WCF契约:Service Contract 
    这种级别的契约又包括两种:ServiceContract和OperationContract

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

    用于自定义数据结构的数据WCF契约:Data Contract 
    数据契约也分为两种:DataContract和DataMember.DataContract用于类或者结构上,指示 WCF此类或者结构能够被序列化并传输,而DataMember只能用在类或者结构的属性(Property)或者字段(Field)上,指示WCF该属性或者字段能够被序列化传输。

    用于自定错误异常的异常WCF契约:Fault Contract 
    FaultContract用于自定义错误异常的处理方式,默认情况下,当服务端抛出异常的时候,客户端能接收到异常信息的描述,但这些描述往往格式统一,有时比较难以从中获取有用的信息,此时,我们可以自定义异常消息的格式,将我们关心的消息放到错误消息中传递给客户端,此时需要在方法上添加自定义一个错误消息的类,然后在要处理异常的函数上加上FaultContract,并将异常信息指示返回为自定义格式。

    用于控制消息格式的消息WCF契约:Message Contract 
    简单的说,它能自定义消息格式,包括消息头,消息体,还能指示是否对消息内容进行加密和签名。

    -------------------------------------------------------------------

    一般我们主要开发用数据契约+服务契约的设计

    数据契约中我们只定义属性,不能向客户端传递方法 静态,Static修饰

    服务契约 我们只定义方法,只能传递标注的OperationContract ,其他的都被忽略

  • 相关阅读:
    extJS 创建类
    apache配置虚拟主机
    pdo简单操作
    php上传sae路径问题
    把php上传sae问题要使用IO
    struts2上传的问题
    Could not open Hibernate Session for transaction;
    Convention插件
    struts2支持的结果类型
    struts2动态方法
  • 原文地址:https://www.cnblogs.com/micro-chen/p/4118516.html
Copyright © 2020-2023  润新知