ContextBindingElement Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Oferece um nível de proteção e um mecanismo de troca como parte do contexto de um elemento de associação, bem como a funcionalidade para criar os ouvintes e as fábricas de canais.
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
- Herança
- Implementações
Comentários
O ContextBindingElement permite que o usuário adicione um elemento à associação de um serviço para gerenciar seu protocolo de troca de contexto. O ContextBindingElement normalmente é empilhado sobre elementos de confiabilidade, segurança e associação de transporte. Um ContextBindingElement não requer nenhuma opção de configuração e pode criar fábricas de canais para IRequestChannel, IRequestSessionChannele IDuplexSessionChannel. Ele também pode criar ouvintes de canal para IReplyChannel, IReplySessionChannele IDuplexSessionChannel. Um canal de contexto não altera a interface do canal – a pilha de canais subjacente deve dar suporte à forma do canal solicitada e à funcionalidade de sessão.
Os ouvintes e fábricas de canais são usados para construir a parte das pilhas de canais usadas para processar mensagens de entrada e saída.
Observação
Se uma associação baseada em sessão for criada com um ContextBindingElement e usada com um contrato que especificaNotAllowedSessionMode = , um InvalidOperationException será gerado quando o canal for criado com o seguinte texto: "O gerenciamento de contexto de canal não pode ser habilitado ou desabilitado depois que o canal é aberto". Você deve definir SessionMode como Allowed ou Required não usar um canal baseado em sessão.
Ao criar uma associação personalizada, é recomendável adicionar o ContextBindingElement ao BindingElementCollection da associação personalizada antes de adicionar elementos de confiabilidade e associação de segurança, se houver. Se você não fizer isso, seu serviço poderá lançar um ProtocolException com a seguinte mensagem:
"O canal de contexto recebeu uma mensagem com contexto que não corresponde ao contexto atual armazenado em cache no canal. Verifique se o serviço não altera o contexto depois de ter sido originalmente definido ou desabilite o gerenciamento de contexto definindo a propriedade de canal 'IContextManager.Enabled' como false."
Construtores
ContextBindingElement() |
Inicializa uma nova instância da classe ContextBindingElement. |
ContextBindingElement(ProtectionLevel) |
Inicializa uma nova instância da classe ContextBindingElement com um nível de proteção especificado. |
ContextBindingElement(ProtectionLevel, ContextExchangeMechanism) |
Inicializa uma nova instância da classe ContextBindingElement com um nível de proteção e um mecanismo de troca especificados. |
ContextBindingElement(ProtectionLevel, ContextExchangeMechanism, Uri) |
Inicializa uma nova instância da classe ContextBindingElement com o nível de proteção, o mecanismo de troca de contexto e o endereço de retorno de chamada do cliente especificados. |
ContextBindingElement(ProtectionLevel, ContextExchangeMechanism, Uri, Boolean) |
Inicializa uma nova instância da classe ContextBindingElement com o nível de proteção, o mecanismo de troca de contexto, o endereço de retorno de chamada do cliente especificados e um valor de especifica se o gerenciamento de contexto está habilitado. |
Propriedades
ClientCallbackAddress |
Obtém ou define o endereço de retorno de chamada do cliente do elemento de associação. |
ContextExchangeMechanism |
Obtém ou define o mecanismo de troca utilizado para comunicar o contexto do elemento de associação. |
ContextManagementEnabled |
Obtém ou define um valor que especifica se o gerenciamento de contexto está habilitado. |
ProtectionLevel |
Obtém ou define o nível de proteção do elemento de associação do contexto. |
Métodos
BuildChannelFactory<TChannel>(BindingContext) |
Cria a pilha de fábrica de canais no cliente que cria um tipo de canal especificado para um contexto especificado. |
BuildChannelListener<TChannel>(BindingContext) |
Cria a pilha do ouvinte de canais no cliente que aceita um tipo de canal especificado para um contexto especificado. |
CanBuildChannelFactory<TChannel>(BindingContext) |
Retorna um valor que indica se o elemento de associação atual pode criar uma fábrica para um tipo de canal e contexto especificados. |
CanBuildChannelListener<TChannel>(BindingContext) |
Retorna um valor que indica se a associação atual pode criar um ouvinte para um tipo de canal e contexto especificados. |
Clone() |
Cria um novo objeto ContextBindingElement inicializado do atual. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
ExportPolicy(MetadataExporter, PolicyConversionContext) |
Grava declarações de política personalizadas no contexto do elemento de associação. |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetProperty<T>(BindingContext) |
Retorna o objeto tipado com o contexto especificado da camada apropriada na pilha de canais. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |