WebMessageEncodingBindingElement Class

Enables plain-text XML, JavaScript Object Notation (JSON) message encodings and "raw" binary content to be read and written when used in a binding.

Namespace:  System.ServiceModel.Channels
Assembly:  System.ServiceModel.Web (in System.ServiceModel.Web.dll)

public sealed class WebMessageEncodingBindingElement : MessageEncodingBindingElement, 

The WebMessageEncodingBindingElement type exposes the following members.

Public methodWebMessageEncodingBindingElement()Initializes a new instance of the WebMessageEncodingBindingElement class.
Public methodWebMessageEncodingBindingElement(Encoding)Initializes a new instance of the WebMessageEncodingBindingElement class with a specified write character encoding.

Public propertyContentTypeMapperGets or sets how the content type of an incoming message is mapped to a format.
Public propertyCrossDomainScriptAccessEnabledGets or sets a value that determines if cross domain script access is enabled.
Public propertyMaxReadPoolSizeGets or sets a value that specifies the maximum number of readers that is allocated to a pool and that is available to process incoming messages without allocating new readers.
Public propertyMaxWritePoolSizeGets or sets a value that specifies the maximum number of writers that is allocated to a pool and that is available to process outgoing messages without allocating new writers.
Public propertyMessageVersionGets or sets the message version that indicates that the binding element does not use SOAP or WS-Addressing. (Overrides MessageEncodingBindingElement.MessageVersion.)
Public propertyReaderQuotasGets constraints on the complexity of SOAP messages that can be processed by endpoints configured with this binding.
Public propertyWriteEncodingGets or sets the character encoding that is used to write the message text.

Public methodBuildChannelFactory<TChannel>Builds the channel factory stack on the client that creates a specified type of channel for a specified context. (Overrides BindingElement.BuildChannelFactory<TChannel>(BindingContext).)
Public methodBuildChannelListener<TChannel>Builds the channel listener stack on the client that accepts a specified type of channel for a specified context. (Overrides BindingElement.BuildChannelListener<TChannel>(BindingContext).)
Public methodCanBuildChannelFactory<TChannel>Returns a value that indicates whether the binding element can build a channel factory for a specific type of channel. (Inherited from BindingElement.)
Public methodCanBuildChannelListener<TChannel>Returns a value that indicates whether the current binding can build a listener for a specified type of channel and context. (Overrides BindingElement.CanBuildChannelListener<TChannel>(BindingContext).)
Public methodCloneCreates a new WebMessageEncodingBindingElement object initialized from the current one. (Overrides BindingElement.Clone().)
Public methodCreateMessageEncoderFactoryCreates a message encoder factory that produces message encoders that can write either JavaScript Object Notation (JSON) or XML messages. (Overrides MessageEncodingBindingElement.CreateMessageEncoderFactory().)
Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetProperty<T>Returns the object of the type requested, if present, from the appropriate layer in the channel stack, or null if it is not present. (Overrides MessageEncodingBindingElement.GetProperty<T>(BindingContext).)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)

Explicit interface implemetationPrivate methodIWsdlExportExtension.ExportContractGenerates WSDL contract information from encoding policies contained in the binding element.
Explicit interface implemetationPrivate methodIWsdlExportExtension.ExportEndpointGenerates WSDL contract information from encoding policies contained in the binding element.

Encoding is the process of transforming a message into a sequence of bytes. Decoding is the reverse process. These processes require the specification of a character encoding. The WebMessageEncodingBindingElement works by delegating to a series of inner encoders to handle the plain-text XML and JSON encodings, and "raw" binary data. This delegation is done by a composite message encoder.

This binding element and its composite encoder are used to control the encoding in scenarios that do not use SOAP messaging used by the WebHttpBinding. These scenarios include "Plain Old XML" (POX), Representational State Transfer (REST), Really Simple Syndication (RSS) and Atom syndication, and Asynchronous JavaScript and XML (AJAX). The composite message encoder does not support SOAP or WS-Addressing, and so MessageVersion always returns None.

The binding element can be configured with a write character encoding at construction time using the WebMessageEncodingBindingElement(Encoding) constructor. The Encoding value specifies the behavior on write for the JSON and Textual XML cases. On read, any valid message encoding and text encoding is understood.

This constructor sets default values on the maximum number of readers and writers that are allocated to pools and that are respectively available to process incoming and outgoing messages without allocating new readers or writers. The properties MaxReadPoolSize and MaxWritePoolSize can also be used to set the maximum number of readers and writers to be allocated respectively. By default 64 readers and 16 writers are allocated.

Default complexity constraints are also set by this constructor on the XmlDictionaryReaderQuotas associated with this encoding by the ReaderQuotas property to protect against a class of denial of service (DOS) attacks that attempt to use message complexity to tie up endpoint processing resources.

The WebMessageEncodingBindingElement has a CreateMessageEncoderFactory method that creates a message encoder factory that produces JSON, XML or Raw message decoders and encoders as appropriate depending on the content type specified.

The WebMessageEncodingBindingElement also provides the methods to build the factories and listeners for the channels through which the HTTP requests flow.

The composite encoder and its associated classes and configuration components are usable in partial trust and this use does not require any special permissions.

.NET Framework

Supported in: 4, 3.5

.NET Framework Client Profile

Supported in: 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

© 2015 Microsoft