WebMessageEncodingBindingElement 类

定义

允许在 Windows Communication Foundation (WCF) 绑定中使用纯文本 XML、JavaScript 对象表示法 (JSON) 消息编码和“原始”二进制内容时对其进行读写。

public ref class WebMessageEncodingBindingElement sealed : System::ServiceModel::Channels::MessageEncodingBindingElement, System::ServiceModel::Description::IWsdlExportExtension
public sealed class WebMessageEncodingBindingElement : System.ServiceModel.Channels.MessageEncodingBindingElement, System.ServiceModel.Description.IWsdlExportExtension
type WebMessageEncodingBindingElement = class
    inherit MessageEncodingBindingElement
    interface IWsdlExportExtension
Public NotInheritable Class WebMessageEncodingBindingElement
Inherits MessageEncodingBindingElement
Implements IWsdlExportExtension
继承
WebMessageEncodingBindingElement
实现

注解

编码是将消息转换为一个字节序列的过程。 解码是反向过程。 这些过程都需要字符编码规范。 WebMessageEncodingBindingElement 的工作方式是委托一系列内部编码器对纯文本 XML 与 JSON 编码以及“原始”二进制数据进行处理。 委托由复合消息编码器来完成。

在不使用 SOAP 消息(由 WebHttpBinding 使用)的方案中,用该绑定元素及其复合编码器控制编码。 这些方案包括“纯旧式 XML”(POX)、具象状态传输 (REST)、真正简单的整合 (RSS) 与 Atom 整合以及异步 JavaScript 和 XML (AJAX)。 复合消息编码器不支持 SOAP 或 WS-Addressing,因此,MessageVersion 总是返回 None

在使用 WebMessageEncodingBindingElement(Encoding) 构造函数进行构造时可以使用编写字符编码配置绑定元素。 Encoding 值指定 JSON 与文本 XML 情况的编写行为。 在读取时,将理解任何有效的消息编码与文本编码。

此构造函数对分配给池的读取器和编写器的最大数量设置默认值,这两个默认值在未分配新的读取器和编写器时分别可用于处理传入和传出消息。 属性 MaxReadPoolSizeMaxWritePoolSize 也可以分别用来设置要分配的读取器和编写器最大数目。 默认情况下,将分配 64 个读取器和 16 个编写器。

此构造函数还可以通过 XmlDictionaryReaderQuotas 属性设置对与此编码关联的 ReaderQuotas 的默认复杂性约束,以抵御某种类型的拒绝服务 (DOS) 攻击,这些攻击试图利用消息复杂性来占用终结点处理资源。

WebMessageEncodingBindingElement 含有可以创建消息编码器工厂的 CreateMessageEncoderFactory 方法,该消息编码器工厂会根据指定的内容类型按需生成 JSON、XML 或原始消息解码器与编码器。

WebMessageEncodingBindingElement 还可以提供针对 HTTP 请求流过的通道生成工厂与侦听器的方法。

复合编码器及其关联的类和配置组件在部分信任中可用,这种使用无需任何特殊权限。

构造函数

WebMessageEncodingBindingElement()

初始化 WebMessageEncodingBindingElement 类的新实例。

WebMessageEncodingBindingElement(Encoding)

使用指定的编写字符编码初始化 WebMessageEncodingBindingElement 类的新实例。

属性

ContentTypeMapper

获取或设置传入消息内容类型映射到格式的方式。

CrossDomainScriptAccessEnabled

获取或设置一个值,该值确定是否启用跨域脚本访问。

MaxReadPoolSize

获取或设置一个值,该值指定无需分配新的读取器便可处理传入消息的最大读取器数,该数值将分配到池中。

MaxWritePoolSize

获取或设置一个值,该值指定无需分配新的编写器便可处理传出消息的最大编写器数,该数值将分配到池中。

MessageVersion

获取或设置消息版本,该消息版本指示绑定元素不使用 SOAP 或 WS-Addressing。

ReaderQuotas

获取可由用此绑定配置的终结点处理的 SOAP 消息的复杂性约束。

WriteEncoding

获取或设置用于编写消息文本的字符编码。

方法

BuildChannelFactory<TChannel>(BindingContext)

在客户端上生成通道工厂堆栈,该通道工厂堆栈可为指定上下文创建指定类型的通道。

BuildChannelListener<TChannel>(BindingContext)

在客户端生成通道侦听器堆栈,该通道侦听器堆栈接受针对指定上下文的具有指定类型的通道。

CanBuildChannelFactory<TChannel>(BindingContext)

返回一个值,该值指示绑定元素是否可以为特定类型的通道生成通道工厂。

(继承自 BindingElement)
CanBuildChannelListener<TChannel>(BindingContext)

返回一个值,该值指示当前绑定是否可以为指定的通道类型和上下文生成侦听器。

Clone()

创建一个从当前对象初始化的新 WebMessageEncodingBindingElement 对象。

CreateMessageEncoderFactory()

创建可以生成消息编码器的消息编码器工厂,所生成的消息编码器可以编写 JavaScript 对象表示法 (JSON) 与 XML 消息。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetProperty<T>(BindingContext)

如果存在,从通道堆栈的适当层返回所请求类型的对象,如果不存在,则为 null

GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

显式接口实现

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

从包含在绑定元素中的编码策略中生成 WSDL 协定信息。

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

从包含在绑定元素中的编码策略中生成 WSDL 协定信息。

适用于