Compartilhar via


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 como 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étodo 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.

O DispatchRuntime permite que você intercepte e estenda 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 chega uma mensagem 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 operação específica, consulte a DispatchOperation classe.

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

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

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

  3. Os componentes de instância personalizam a criação, o ciclo de vida e o descarte das instâncias do tipo de serviço. Para obter mais informações sobre tempos de vida do objeto de serviço, confira a propriedade InstanceContextMode. Essa categoria inclui as propriedades InstanceContextInitializers e InstanceProvider.

  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

Nome Description
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 ClientRuntime objeto que representa o ponto de instalação para extensões para o Windows Communication Foundation (WCF) para chamadas de saída para um ponto de extremidade de retorno de chamada duplex.

ChannelDispatcher

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

ConcurrencyMode

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

EndpointDispatcher

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

EnsureOrderedDispatch

Obtém um valor que indica se as mensagens devem ser enviadas na 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 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 tenta representar usando as credenciais fornecidas pela mensagem de entrada.

ImpersonateOnSerializingReply

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

InputSessionShutdownHandlers

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

InstanceContextInitializers

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

InstanceContextProvider

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

InstanceProvider

Obtém ou define um IInstanceProvider objeto que você pode usar para controlar a criação e a 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 gravados no log 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 ponto de extremidade.

Operations

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

OperationSelector

Obtém ou define o IDispatchOperationSelector objeto que controla a seleção de um destino DispatchOperation 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 CurrentPrincipal propriedade é definida.

ReleaseServiceInstanceOnTransactionComplete

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

RoleProvider

Obtém ou define o personalizado RoleProvider que é 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 a verificação de autorização para o DispatchRuntime.

SingletonInstanceContext

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

SuppressAuditFailure

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

SynchronizationContext

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

TransactionAutoCompleteOnSessionClose

Obtém ou define um valor que especifica se a transação atual será concluída automaticamente quando a sessão for fechada.

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

Nome Description
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 Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a