DispatchRuntime 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.
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:
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.
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:
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.
Os componentes de mensagem são personalizados para cada mensagem processada. Essa categoria inclui as propriedades MessageInspectors, OperationSelector, Operations e ErrorHandlers.
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.
Os componentes relacionados à segurança podem usar as seguintes propriedades:
SecurityAuditLogLocation indica onde os eventos de auditoria são gravados.
ImpersonateCallerForAllOperations controla se o serviço tentará representar usando as credenciais fornecidas pela mensagem de entrada.
MessageAuthenticationAuditLevel controla se eventos de autenticação de mensagem bem-sucedidos são gravados no log de eventos especificado por SecurityAuditLogLocation.
PrincipalPermissionMode controla como a CurrentPrincipal propriedade é definida.
ServiceAuthorizationAuditLevel especifica como a auditoria de eventos de autorização é executada.
SuppressAuditFailure especifica se deve suprimir exceções não críticas que ocorrem durante o processo de registro em log.
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) |