Compartir vía


ContextBindingElement Clase

Definición

Proporciona un nivel de protección y un mecanismo de intercambio como parte del contexto de un elemento de enlace y la funcionalidad para crear los agentes de escucha y los generadores del canal.

public ref class ContextBindingElement : System::ServiceModel::Channels::BindingElement, System::ServiceModel::Channels::IContextBindingElement, System::ServiceModel::Description::IPolicyExportExtension
public class ContextBindingElement : System.ServiceModel.Channels.BindingElement, System.ServiceModel.Channels.IContextBindingElement, System.ServiceModel.Description.IPolicyExportExtension
type ContextBindingElement = class
    inherit BindingElement
    interface IPolicyExportExtension
    interface IContextBindingElement
Public Class ContextBindingElement
Inherits BindingElement
Implements IContextBindingElement, IPolicyExportExtension
Herencia
ContextBindingElement
Implementaciones

Comentarios

El ContextBindingElement permite al usuario agregar un elemento al enlace de un servicio para administrar su protocolo de intercambio de contexto. El ContextBindingElement se apila normalmente sobre los elementos de enlace de confiabilidad, seguridad y transporte. Un ContextBindingElement no requiere ninguna opción de configuración y puede crear generadores de canales para IRequestChannel, IRequestSessionChannely IDuplexSessionChannel. También puede crear agentes de escucha de canal para IReplyChannel, IReplySessionChannely IDuplexSessionChannel. Un canal de contexto no cambia la interfaz de canal: la pila de canales subyacente debe admitir la forma de canal solicitada y la funcionalidad de sesión.

Los agentes de escucha de canal y los generadores se usan para construir la parte de las pilas de canales usadas para procesar los mensajes entrantes y salientes.

Nota

Si se crea un enlace basado en sesión con un ContextBindingElement y se usa con un contrato que especifica SessionMode = NotAllowed, se produce un InvalidOperationException cuando se crea el canal con el texto siguiente: "No se puede habilitar ni deshabilitar la administración del contexto del canal después de abrir el canal". Debe establecer SessionMode en Allowed o Required o no usar un canal basado en sesión.

Al crear un enlace personalizado, se recomienda agregar el ContextBindingElement al BindingElementCollection del enlace personalizado antes de agregar cualquier elemento de enlace de confiabilidad y seguridad, si está presente. Si no lo hace, el servicio puede producir un ProtocolException con el siguiente mensaje:

"El canal de contexto recibió un mensaje con contexto que no coincide con el contexto actual almacenado en caché en el canal. Asegúrese de que el servicio no cambia el contexto después de que se haya establecido originalmente o deshabilite la administración de contexto estableciendo la propiedad de canal "IContextManager.Enabled" en false".

Constructores

ContextBindingElement()

Inicializa una nueva instancia de la clase ContextBindingElement.

ContextBindingElement(ProtectionLevel, ContextExchangeMechanism, Uri, Boolean)

Inicializa una nueva instancia de la clase ContextBindingElement con el nivel de protección, el mecanismo de intercambio de contexto, la dirección de devolución de llamada de cliente y un valor que especifica si la administración de contexto está habilitada.

ContextBindingElement(ProtectionLevel, ContextExchangeMechanism, Uri)

Inicializa una nueva instancia de la clase ContextBindingElement con el nivel de protección, el mecanismo de intercambio de contexto y la dirección de devolución de llamada del cliente especificados.

ContextBindingElement(ProtectionLevel, ContextExchangeMechanism)

Inicializa una nueva instancia de la clase ContextBindingElement con un nivel de protección y mecanismo de intercambio especificado.

ContextBindingElement(ProtectionLevel)

Inicializa una nueva instancia de la clase ContextBindingElement con un nivel de protección especificado.

Propiedades

ClientCallbackAddress

Obtiene o establece la dirección de devolución de llamada del cliente para el elemento de enlace.

ContextExchangeMechanism

Obtiene o establece el mecanismo de intercambio utilizado para comunicar el contexto del elemento de enlace.

ContextManagementEnabled

Obtiene o establece un valor que especifica si la administración de contexto está habilitada.

ProtectionLevel

Obtiene o establece el nivel de protección del elemento de enlace del contexto.

Métodos

BuildChannelFactory<TChannel>(BindingContext)

Compila la pila del generador de canales en el cliente que crea un tipo de canal especificado para un contexto especificado.

BuildChannelListener<TChannel>(BindingContext)

Compila la pila del agente de escucha del canal en el cliente que acepta un tipo de canal especificado para un contexto especificado.

CanBuildChannelFactory<TChannel>(BindingContext)

Devuelve un valor que indica si el elemento de enlace actual puede crear un generador para un tipo especificado de canal y contexto.

CanBuildChannelListener<TChannel>(BindingContext)

Devuelve un valor que indica si el enlace actual puede crear un agente de escucha para un tipo especificado de canal y contexto.

Clone()

Crea un nuevo objeto ContextBindingElement inicializado a partir del actual.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
ExportPolicy(MetadataExporter, PolicyConversionContext)

Escribe aserciones de directiva personalizadas en el contexto del elemento de enlace.

GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetProperty<T>(BindingContext)

Devuelve el objeto con tipo con el contexto especificado de la capa adecuada en la pila del canal.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a