Partilhar via


ContextBindingElement Classe

Definição

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
ContextBindingElement
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)

Aplica-se a