WCF的精微物质:运行环境(术语Host),服务逻辑人(术语Service Class),通信人(术语Endpoints)。
WCF精微物质的运动过程:业务逻辑人活在运行环境中,接收业务需求,进行处理。然后叫通信人把处理结果传递出去。
WCF的精微物质>通信人
通信人的精微物质:交通工具(术语Binding绑定),目的地(术语EndpointAddress地址),逻辑人的本事选择(术语ContractDescription 契约)。
通信人精微物质的运动过程 :通信人,根据客户的要求,通过指定的交通工具,把指定逻辑人处理的结果,反馈给客户。
WCF的精微物质>服务逻辑人>本事(契约)
本事的精微物质:用于定义服务操作的服务WCF契约:Service Contract ,用于自定义数据结构的数据WCF契约:Data Contract ,用于自定错误异常的异常WCF契约:Fault Contract ,用于控制消息格式的消息WCF契约:Message Contract
本事精微物质的运动过程 :
用于定义服务操作的服务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
简单的说,它能自定义消息格式,包括消息头,消息体,还能指示是否对消息内容进行加密和签名。
上帝构造WCF:通过图形化,文件配置化,代码化。
------------------------------------文章重构---------------------
通信人的作用,负责把客户的信息传递给服务员,也负责把服务结果传递给客户。
通信人的精微物质,
组成部分 | 作用 | |
Uri | 指示EndPoint的地址,是必须的 | |
Identity | 能保证地址的唯一性,当Uri一致的时候,可以用Identity来区分EndPoint,可有可无 | |
Headers | 为地址提供了一些附加信息,用于Soap Message Filter,最后会添加到Soap消息的Header中 |
此外,Address还包括IsAnonymous属性,用于指示终节点是否能匿名访问。
如何告诉通信人对方地址->如何在配置文件中指定Address?如何告诉通信人对方地址->如何通过编程方式设置Address?
通信人的特异功能
此文章改写于http://www.cnblogs.com/jillzhang/archive/2008/01/30/1059169.html