契约有几种?,都有什么用途
WCF中,契约分为四种,分别为:
用于定义服务操作的服务契约:ServicContract
这种级别的契约又包括两种:ServiceContract和OperationContract
ServiceContract用于类或者结构上,用于指示WCF此类或者结构能够被远程调用,而OperationContract用于类中的方法(Method上,用于指示WCF该方法可被远程调用。
用于自定义数据结构的数据契约:DataContract
数据契约也分为两种:DataContract和DataMember.DataContract用于类或者结构上,指示 WCF此类或者结构能够被序列化并传输,而DataMemb只能用在类或者结构的属性(Properti或者字段(Field上,指示WCF该属性或者字段能够被序列化传输。
用于自定错误异常的异常契约:FaultContract
FaultContract用于自定义错误异常的处置方式,默认情况下,当服务端抛出异常的时候,客户端能接收到异常信息的描述,但这些描述往往格式统一,有时比较难以从中获取有用的信息,此时,可以自定义异常消息的格式,将我关心的消息放到错误消息中传送给客户端,此时需要在方法上添加自定义一个错误消息的类,然后在要处理异常的函数上加上FaultContract并将异常信息指示返回为自定义格式。
用于控制消息格式的消息契约:MessagContract
简单的说,能自定义消息格式,包括消息头,消息体,还能指示是否对消息内容进行加密和签名。
SUMMA RY:契约的使用是很简单的无非就是普通的顺序结构上添加一些声明性的属性就可以了比方我可以直接在类上声明ServerContractA ttribut此时这个类就能被远程客户端访问到而在类中的方法中(Method添加OperationContractA ttribut就能将方法流露给远程客户端,其他契约也一样的用法,比较难的还是消息契约和错误契约。
契约是独立于平台的么?
WCF作为一种能够跨平台的体系框架,其应用肯定会有异构,异网的情况发生,那么作为通讯依据的契约能否自动适用于上述情况呢?答案是肯定的契约是独立于平台之外的只约束通讯的双方应该遵守什么样的规则,而丝毫不管双方各自采用的什么样的技术和什么样的操作系统,也只有这样,WCF才干有真正的生命力。
WCF平安性方面做了哪些改进?
为了保证数据通讯的平安,WCF提供了三种保护措施:1机密性(Confidenti2完整性(Integriti3可验证性(Authent这三种措施联合起来被称为CIA 并且这些措施在WCF中是默认支持的机密性能保证传输的数据是经过加密的不被非法监听(eavesdrop而完整性利用数字签名技术防止数据在传输过程中被注入(inject或篡改(tamper而验证(Authent可以采用灵活的战略来处理达到客户端请求,比如用户名密码验证,客户端证书验证等。
文章来源http://baid.us/neGt
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29212814/viewspace-774514/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29212814/viewspace-774514/