DispatchRuntime Classe

Definição

Expõe propriedades que podem ser usadas para modificar o comportamento de serviço padrão, bem como anexar objetos personalizados que podem modificar as mensagens de entrada são transformadas em objetos e enviadas para operações. Essa 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

Comentários

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

  1. A transformação de mensagens de entrada em objetos e 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 WCF (Windows Communication Foundation), os dispatchers de canal e ponto de extremidade são os componentes de serviço responsáveis por aceitar novos canais, receber mensagens, expedição e invocação de métodos e processamento de resposta. Cada ponto de extremidade exposto por um objeto tem um ServiceHost dispatcher de ponto de extremidade e um dispatcher de canal associado; além disso, cada cliente que participa da comunicação duplex também tem um dispatcher de ponto de extremidade e um dispatcher de canal para cada ponto de extremidade de retorno de chamada.

Permite DispatchRuntime interceptar e estender o dispatcher de canal ou ponto de extremidade para todas as mensagens em um contrato específico, mesmo quando uma mensagem não é reconhecida. Quando uma mensagem chega que não corresponde a nenhuma mensagem declarada no contrato, ela é enviada para a operação que foi retornada pela UnhandledDispatchOperation propriedade. Para interceptar ou estender todas as mensagens para uma determinada operação, consulte a DispatchOperation classe.

Há quatro áreas principais de extensibilidade do dispatcher expostas pela DispatchRuntime classe:

  1. Os componentes de expedição usam as propriedades e DispatchRuntime as do dispatcher de canal associado retornados pela ChannelDispatcher propriedade para personalizar como o dispatcher de canal aceita e fecha canais. Essa categoria inclui as propriedades e InputSessionShutdownHandlers as ChannelInitializers propriedades.

  2. Os componentes de mensagem são personalizados para cada mensagem processada. Essa categoria inclui o MessageInspectors, OperationSelectore Operationsas 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 tempo de vida do objeto de serviço, consulte a InstanceContextMode propriedade. Essa categoria inclui as propriedades e as InstanceContextInitializers 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 em uma 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 ponto de extremidade (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 de aplicativo.

Propriedades

AutomaticInputSessionShutdown

Obtém 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 o WCF (Windows Communication Foundation) para chamadas de saída a um ponto de extremidade de retorno de chamada duplex.

ChannelDispatcher

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

ConcurrencyMode

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

EndpointDispatcher

Obtém o EndpointDispatcher para este runtime de expedição.

EnsureOrderedDispatch

Obtém um valor que indica se as mensagens devem ser expedidas na ordem em que foram enviadas.

ExternalAuthorizationPolicies

Obtém ou define as políticas de autorização externa que definem um conjunto de regras para autorizar um usuário, dado um conjunto de declarações.

IgnoreTransactionMessageProperty

Obtém ou define se deve ignorar o TransactionMessageProperty.

ImpersonateCallerForAllOperations

Obtém ou define um valor que controla se o serviço tentará representar usando as credenciais fornecidas pela mensagem de entrada.

ImpersonateOnSerializingReply

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

InputSessionShutdownHandlers

Obtém uma coleção de objetos IInputSessionShutdown que podem ser usados para adicionar um manipulador personalizado para controlar como sessões de entrada são fechadas.

InstanceContextInitializers

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

InstanceContextProvider

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

InstanceProvider

Obtém ou define um objeto IInstanceProvider que você pode 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 mensagem com êxito são gravados no log de eventos especificado pelo SecurityAuditLogLocation.

MessageInspectors

Obtém uma coleção de objetos IDispatchMessageInspector que podem ser usados para anexar um inspetor de mensagem personalizado para todas as mensagens de entrada e saída através do ponto de extremidade.

Operations

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

OperationSelector

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

PreserveMessage

Obtém ou define se a mensagem é preservada.

PrincipalPermissionMode

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

ReleaseServiceInstanceOnTransactionComplete

Obtém ou define um valor que especifica se o objeto de serviço é reciclado depois de uma transação ser concluída com êxito.

RoleProvider

Obtém ou define o RoleProvider personalizado usado pelo DispatchRuntime.

SecurityAuditLogLocation

Obtém ou define o local do log de auditoria.

ServiceAuthenticationManager

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

ServiceAuthorizationAuditLevel

Obtém ou define um valor que controla quais eventos de autorização de serviço são auditados.

ServiceAuthorizationManager

Obtém o ServiceAuthorizationManager que fornece autorização verificando o DispatchRuntime.

SingletonInstanceContext

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

SuppressAuditFailure

Obtém ou define um valor que especifica se exceções não críticas que ocorrem durante o processo de registro em log devem ser suprimidas.

SynchronizationContext

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

TransactionAutoCompleteOnSessionClose

Obtém ou define um valor que especifica se deve concluir automaticamente a transação atual quando a sessão fecha.

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 expedidas.

ValidateMustUnderstand

Obtém ou define o valor de ValidateMustUnderstand.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
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