Windows Communication Foundation (WCF) 应用程序模型旨在解决任何分布式应用程序的通信要求的更大部分。 但始终存在默认应用程序模型和系统提供的实现不支持的方案。 WCF 扩展性模型旨在通过使你能够在每个级别修改系统行为,甚至能够替换整个应用程序模型,来支持自定义方案。 本主题概述了扩展的各个方面,并指向有关每个扩展的详细信息。
要扩展的区域
你可以扩展:
应用程序运行时。 这会扩展应用程序的调度和消息处理。 此区域还包括扩展安全系统、元数据系统、序列化系统以及将应用程序与基础通道系统连接起来的绑定和绑定元素。
通道和通道运行库。 这扩展了在消息级别运行、提供协议、传输和编码支持的系统。
主机运行时。 这会将托管应用程序域的关系扩展到通道和应用程序运行时。
扩展应用程序运行时
在 WCF 应用程序中,目标为相应通道的消息与目标为应用程序本身的消息之间是有区别的。 通道消息支持某些与通道相关的功能,例如建立安全对话或建立可靠的会话。 这些消息在应用程序运行时无法访问,它们会在涉及应用程序层之前被处理。
应用程序消息中包含发往客户端或发往您或您的客户创建的服务操作的数据。 这些消息适用于消息或对象形式的应用程序级扩展系统,具体取决于你的需求。
所有消息通过通道系统传递;仅将应用程序消息从通道系统传递到应用程序。 若要创建新的通道级功能,必须扩展通道系统。 若要创建新的应用程序级功能,必须分别扩展服务或客户端运行时(调度程序和通道工厂)。 有关扩展应用程序运行时的详细信息,请参阅 扩展 ServiceHost 和服务模型层。
扩展安全性
若要生成自定义安全机制(如令牌和凭据),必须扩展安全系统。 有关详细信息,请参阅 扩展安全性。
扩展元数据
若要以与默认值不同的方式公开元数据,必须扩展元数据系统。 有关详细信息,请参阅 扩展元数据系统。
扩展序列化
若要生成自定义编码器、提供数据代理项或涉及自定义传输数据的其他工作,必须扩展序列化系统。 有关详细信息,请参阅 扩展编码器和序列化程序。
扩展绑定
若要将传输或协议通道与应用程序层相关联,必须扩展绑定系统。 有关详细信息,请参阅 扩展绑定。
扩展通道系统
若要创建支持自定义传输或协议功能的通道,请参阅 扩展通道层。
扩展服务宿主系统
若要修改服务范围的应用程序模型,必须扩展 System.ServiceModel.ServiceHostBase 类。 有关详细信息,请参阅 扩展 ServiceHost 和服务模型层。
若要修改宿主应用程序域和服务主机之间的关系,必须扩展该 System.ServiceModel.Activation.ServiceHostFactory 类。 有关详细信息,请参阅 使用 ServiceHostFactory 扩展托管。