本文画出了 WCF 框架运行时的重点类之间的类关系图。

  • Binding

一个 Binding 由多个 BindingElement 组成。BindingElement 作为主要的扩展点。每一个 BindingElement 描述某个独立的行为。最终 Binding 使用一连串的 BindingElement 来生成Channel。

WCF 框架运行时类图-LMLPHP

  • Description

Description 表示服务的元数据,用于描述服务本身。一个服务包括多个终结点,一个终结点对应一个绑定、对应一个契约、多个操作。而服务、终结点、契约、操作,都可以附加多个行为来对其进行控制。

WCF 框架运行时类图-LMLPHP

  • Behaviors

下面是四类行为用于控制的类型。

WCF 框架运行时类图-LMLPHP

WCF 框架运行时类图-LMLPHP

WCF 框架运行时类图-LMLPHP

  • Behavior Invoke flow

框架内部对于行为的调用顺序:

WCF 框架运行时类图-LMLPHP

  • Client Runtime

客户端运行时类型,用于控制客户端运行时行为。

WCF 框架运行时类图-LMLPHP

  • Server Runtime

服务端运行时类型。相对客户端的运行时,要复杂一些。

WCF 框架运行时类图-LMLPHP

对运行时扩展时,一般使用 Behavior。如果想使用配置文件声明的方式,则应该封装到 BindingElementExtensionElement 或者 BehaviorExtensionElement 中。

05-08 08:20