DispatchRuntime Classe

Definição

Expõe propriedades que podem ser usadas para modificar o comportamento padrão dos serviços, bem como para anexar objetos personalizados que podem modificar a forma como as mensagens recebidas são transformadas em objetos e enviadas para operações. Esta classe não pode ser herdada.

public ref class DispatchRuntime sealed
public sealed class DispatchRuntime
type DispatchRuntime = class
Public NotInheritable Class DispatchRuntime
Herança
DispatchRuntime

Observações

Use a DispatchRuntime classe quer para modificar o comportamento padrão de um serviço ou endpoint individual, quer para inserir objetos que implementem modificações personalizadas em um ou ambos os seguintes processos de serviço:

  1. A transformação de mensagens de entrada em objetos e a liberação desses objetos como invocações de método em um objeto de serviço.

  2. A transformação de objetos recebidos da resposta a uma invocação de operação de serviço em mensagens de saída.

No Windows Communication Foundation (WCF), os despachantes do canal e dos endpoints são os componentes de serviço responsáveis por aceitar novos canais, receber mensagens, despachar e invocar métodos, e processar respostas. Cada ponto final exposto por um ServiceHost objeto tem um despachante de endpoint e um despachante de canal associado; além disso, cada cliente que participa na comunicação duplex também tem um despachante de endpoint e um despachante de canal para cada endpoint de callback.

O DispatchRuntime permite-lhe interceptar e estender o canal ou o despachante de endpoints para todas as mensagens num contrato específico, mesmo quando uma mensagem não é reconhecida. Quando chega uma mensagem que não corresponde a nenhuma das mensagens declaradas no contrato, ela é enviada para a operação que foi devolvida pela UnhandledDispatchOperation propriedade. Para intercetar ou estender todas as mensagens de uma operação específica, consulte a DispatchOperation classe.

Existem quatro áreas principais de extensibilidade do despachante expostas pela DispatchRuntime classe:

  1. Os componentes de despacho utilizam as propriedades do DispatchRuntime e das do despachante de canal associado devolvidas pela ChannelDispatcher propriedade para personalizar como o despachante de canal aceita e fecha os canais. Esta categoria inclui as ChannelInitializers propriedades e InputSessionShutdownHandlers .

  2. Os componentes da mensagem são personalizados para cada mensagem processada. Esta categoria inclui o MessageInspectors, OperationSelector, Operations, e as ErrorHandlers propriedades.

  3. Os componentes de instância personalizam a criação, o tempo de vida e o descarte de instâncias do tipo de serviço. Para obter mais informações sobre o ciclo de vida dos objetos de serviço, consulte a propriedade InstanceContextMode. Esta categoria inclui as InstanceContextInitializers e as InstanceProvider propriedades.

  4. Os componentes relacionados à segurança podem usar as seguintes propriedades:

Normalmente, objetos de extensão personalizados são atribuídos a uma DispatchRuntime propriedade ou inseridos numa coleção por um comportamento de serviço (um objeto que implementa IServiceBehavior), um comportamento de contrato (um objeto que implementa IContractBehavior), ou um comportamento de endpoint (um objeto que implementa IEndpointBehavior). Em seguida, o objeto de comportamento de instalação é adicionado à coleção apropriada de comportamentos programaticamente ou implementando um objeto personalizado BehaviorExtensionElement para permitir que o comportamento seja inserido usando um arquivo de configuração do aplicativo.

Propriedades

Name Description
AutomaticInputSessionShutdown

Recebe ou define um valor que especifica se o serviço fecha uma sessão de entrada quando o cliente fecha uma sessão de saída.

CallbackClientRuntime

Obtém o objeto ClientRuntime que representa o ponto de instalação para extensões para Windows Communication Foundation (WCF) para chamadas de saída para um endpoint de callback duplex.

ChannelDispatcher

Obtém o ChannelDispatcher para este objeto de execução de despacho.

ConcurrencyMode

Obtém ou define se uma instância de um serviço processa mensagens sequencialmente ou simultaneamente.

EndpointDispatcher

Obtém o EndpointDispatcher tempo de execução deste despacho.

EnsureOrderedDispatch

Recebe um valor que indica se as mensagens devem ser enviadas pela ordem em que foram enviadas.

ExternalAuthorizationPolicies

Obtém ou define as políticas de autorização externas que definem um conjunto de regras para autorizar um utilizador, dado um conjunto de reivindicações.

IgnoreTransactionMessageProperty

Obtém ou define se deve ignorar o TransactionMessageProperty.

ImpersonateCallerForAllOperations

Recebe ou define um valor que controla se o serviço tenta fazer-se passar usando as credenciais fornecidas pela mensagem recebida.

ImpersonateOnSerializingReply

Obtém um valor que indica se a personificação é usada na operação de resposta serializada.

InputSessionShutdownHandlers

Obtém uma coleção de IInputSessionShutdown objetos que podem ser usados para adicionar um handler personalizado que controla como as sessões de entrada são encerradas.

InstanceContextInitializers

Obtém uma coleção de IInstanceContextInitializer objetos que podem ser usados para inspecionar ou modificar um InstanceContext objeto quando este é criado pela primeira vez.

InstanceContextProvider

Obtém ou define o IInstanceContextProvider a ser usado pelo DispatchRuntime.

InstanceProvider

Obtém ou define um IInstanceProvider objeto que podes usar para controlar a criação e destruição de objetos de serviço.

MessageAuthenticationAuditLevel

Obtém ou define um valor que especifica se os eventos de autenticação de mensagens bem-sucedidos são escritos no registo de eventos especificado por SecurityAuditLogLocation.

MessageInspectors

Obtém uma coleção de IDispatchMessageInspector objetos que podem ser usados para anexar um inspetor de mensagens personalizado para todas as mensagens de entrada e saída no endpoint.

Operations

Obtém uma coleção de DispatchOperation objetos que podem ser usados para controlar o comportamento de execução de uma determinada operação.

OperationSelector

Obtém ou define o IDispatchOperationSelector objeto que controla a seleção de um destino DispatchOperation para uma determinada mensagem.

PreserveMessage

Obtém ou define se a mensagem é preservada.

PrincipalPermissionMode

Recebe ou define um valor que especifica como a CurrentPrincipal propriedade é definida.

ReleaseServiceInstanceOnTransactionComplete

Recebe ou define um valor que especifica se o objeto de serviço é reciclado após a conclusão da transação com sucesso.

RoleProvider

Obtém ou define o costume RoleProvider que é usado pelo DispatchRuntime.

SecurityAuditLogLocation

Obtém ou define a localização do registo de auditoria.

ServiceAuthenticationManager

Obtém ou define o objeto que gere um processo de autenticação para operações de serviço.

ServiceAuthorizationAuditLevel

Recebe ou define um valor que controla quais os eventos de autorização de serviço que são auditados.

ServiceAuthorizationManager

Obtém-se o ServiceAuthorizationManager que fornece verificação de autorização para o DispatchRuntime.

SingletonInstanceContext

Obtém ou define o singleton IInstanceContextProvider a ser usado pelo DispatchRuntime.

SuppressAuditFailure

Recebe ou define um valor que especifica se deve suprimir exceções não críticas que ocorrem durante o processo de registo.

SynchronizationContext

Obtém ou define o contexto de sincronização que é usado para invocar as operações de serviço.

TransactionAutoCompleteOnSessionClose

Recebe ou define um valor que especifica se deve concluir automaticamente a transação atual quando a sessão termina.

Type

Obtém ou define o tipo de contrato.

UnhandledDispatchOperation

Obtém ou define a operação para a qual as mensagens não reconhecidas são enviadas.

ValidateMustUnderstand

Obtém ou define o valor de ValidateMustUnderstand.

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a