ContextBindingElement Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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) |