DispatchRuntime Classe

Definizione

Espone proprietà che possono essere utilizzate per modificare il comportamento predefinito del servizio oltre che per collegare oggetti personalizzati in grado di modificare la modalità di trasformazione in oggetti e di invio alle operazioni dei messaggi in arrivo. La classe non può essere ereditata.

public ref class DispatchRuntime sealed
public sealed class DispatchRuntime
type DispatchRuntime = class
Public NotInheritable Class DispatchRuntime
Ereditarietà
DispatchRuntime

Commenti

Utilizzare la classe DispatchRuntime per modificare il comportamento predefinito di un servizio o di un endpoint singolo oppure per inserire oggetti che implementano modifiche personalizzate in uno o in entrambi i processi del servizio seguenti:

  1. Trasformazione di messaggi in arrivo in oggetti e rilascio di tali oggetti come chiamate al metodo su un oggetto servizio.

  2. Trasformazione di oggetti ricevuti dalla risposta a una chiamata a operazioni del servizio in messaggi in uscita.

In Windows Communication Foundation (WCF), i dispatcher di canale ed endpoint sono i componenti del servizio responsabili dell'accettazione di nuovi canali, ricezione di messaggi, invio di metodi e chiamata e elaborazione delle risposte. Ogni endpoint esposto da un oggetto ServiceHost dispone di un dispatcher dell'endpoint e di un dispatcher del canale associato; in aggiunta, ogni client che partecipa a comunicazioni duplex dispone di un dispatcher dell'endpoint e di un dispatcher del canale per ogni endpoint di callback.

DispatchRuntime consente di intercettare ed estendere il dispatcher del canale o dell'endpoint per tutti i messaggi di un particolare contratto, anche quando un messaggio non viene riconosciuto. Quando arriva un messaggio che non corrisponde a un messaggio dichiarato nel contratto, viene inviato all'operazione restituita dalla proprietà UnhandledDispatchOperation. Per l'intercettazione o l'estensione in tutti i messaggi relativi a una particolare operazione, vedere la classe DispatchOperation.

Sono presenti quattro aree principali di estendibilità del dispatcher esposto dalla classe DispatchRuntime:

  1. I componenti di distribuzione utilizzano le proprietà di DispatchRuntime e quelle del dispatcher del canale associato, restituito dalla proprietà ChannelDispatcher, per personalizzare la modalità utilizzata dal dispatcher del canale per accettare e chiudere canali. In questa categoria sono incluse le proprietà ChannelInitializers e InputSessionShutdownHandlers.

  2. I componenti dei messaggi vengono personalizzati per ogni messaggio elaborato. In questa categoria sono incluse le proprietà MessageInspectors, OperationSelector, Operations e ErrorHandlers.

  3. I componenti dell'istanza personalizzano la creazione, la durata e l'eliminazione di istanze del tipo di servizio. Per altre informazioni sulle durate degli oggetti di servizio, vedere la proprietà InstanceContextMode. In questa categoria sono incluse le proprietà InstanceContextInitializers e InstanceProvider.

  4. I componenti correlati alla protezione possono usare le proprietà seguenti:

In genere gli oggetti di estensione personalizzati vengono assegnati a una proprietà DispatchRuntime o inseriti in una raccolta da un comportamento del servizio (un oggetto che implementa IServiceBehavior), un comportamento del contratto (un oggetto che implementa IContractBehavior) o un comportamento dell'endpoint (un oggetto che implementa IEndpointBehavior). L'oggetto del comportamento da installare viene quindi aggiunto alla raccolta appropriata di comportamenti a livello di programmazione o implementando un oggetto BehaviorExtensionElement personalizzato per consentire l'inserimento del comportamento usando un file di configurazione dell'applicazione.

Proprietà

AutomaticInputSessionShutdown

Ottiene o imposta un valore che specifica se il servizio chiude una sessione di input quando la chiude il client.

CallbackClientRuntime

Ottiene l'oggetto ClientRuntime che rappresenta il punto di installazione per le estensioni in Windows Communication Foundation (WCF) per le chiamate in uscita a un endpoint di callback duplex.

ChannelDispatcher

Ottiene l'oggetto ChannelDispatcher per questo oggetto runtime di distribuzione.

ConcurrencyMode

Ottiene o imposta se un'istanza di un servizio elabora i messaggi in sequenza o contemporaneamente.

EndpointDispatcher

Ottiene l'oggetto EndpointDispatcher per questo runtime di distribuzione.

EnsureOrderedDispatch

Ottiene un valore che specifica se è garantito l'invio dei messaggi nell'ordine in cui sono stati inviati.

ExternalAuthorizationPolicies

Ottiene o imposta i criteri di autorizzazione esterni che definiscono un set di regole per l'autorizzazione di un utente, dato un set di attestazioni.

IgnoreTransactionMessageProperty

Ottiene o imposta se ignorare TransactionMessageProperty.

ImpersonateCallerForAllOperations

Ottiene o imposta un valore che controlla se il servizio tenta di eseguire la rappresentazione utilizzando le credenziali fornite dal messaggio in ingresso.

ImpersonateOnSerializingReply

Ottiene un valore che indica se la rappresentazione viene utilizzata nell'operazione di serializzazione della risposta.

InputSessionShutdownHandlers

Ottiene una raccolta di oggetti IInputSessionShutdown utilizzabili per aggiungere un gestore personalizzato per controllare le modalità di chiusura delle sessioni di input.

InstanceContextInitializers

Ottiene una raccolta di oggetti IInstanceContextInitializer utilizzabili per controllare o modificare un oggetto InstanceContext quando viene creato inizialmente.

InstanceContextProvider

Ottiene o imposta l'oggetto IInstanceContextProvider che viene utilizzato da DispatchRuntime.

InstanceProvider

Ottiene o imposta un oggetto IInstanceProvider utilizzabile per controllare la creazione e la distruzione di oggetti servizio.

MessageAuthenticationAuditLevel

Ottiene o imposta un valore che specifica se gli eventi di autenticazione riuscita dei messaggi debbano essere scritti nel registro eventi specificato da SecurityAuditLogLocation.

MessageInspectors

Ottiene una raccolta di oggetti IDispatchMessageInspector utilizzabili per collegare un controllo dei messaggi personalizzato per tutti i messaggi in ingresso e in uscita dall'endpoint.

Operations

Ottiene una raccolta di oggetti DispatchOperation utilizzabili per controllare il comportamento dell'esecuzione di una determinata operazione

OperationSelector

Ottiene o imposta l'oggetto IDispatchOperationSelector che controlla la selezione di una destinazione DispatchOperation per un particolare messaggio.

PreserveMessage

Ottiene o imposta un valore che indica se il messaggio viene conservato.

PrincipalPermissionMode

Ottiene o imposta un valore che specifica come viene impostata la proprietà CurrentPrincipal.

ReleaseServiceInstanceOnTransactionComplete

Ottiene o imposta un valore che specifica se l'oggetto servizio viene riciclato dopo che la transazione è stata completata correttamente.

RoleProvider

Ottiene o imposta l'oggetto RoleProvider personalizzato, utilizzato da DispatchRuntime.

SecurityAuditLogLocation

Ottiene o imposta il percorso del registro di controllo.

ServiceAuthenticationManager

Ottiene o imposta l'oggetto che gestisce un processo di autenticazione per le operazioni del servizio.

ServiceAuthorizationAuditLevel

Ottiene o imposta un valore che controlla quali eventi di autorizzazione del servizio vengono controllati.

ServiceAuthorizationManager

Ottiene l'oggetto ServiceAuthorizationManager che fornisce il controllo delle autorizzazioni per DispatchRuntime.

SingletonInstanceContext

Ottiene o imposta il singleton IInstanceContextProvider che viene utilizzato da DispatchRuntime.

SuppressAuditFailure

Ottiene o specifica se sopprimere le eccezioni non critiche che si verificano durante il processo di registrazione.

SynchronizationContext

Ottiene o imposta il contesto di sincronizzazione utilizzato per richiamare le operazioni del servizio.

TransactionAutoCompleteOnSessionClose

Ottiene o imposta un valore che specifica se completare automaticamente la transazione corrente alla chiusura della sessione.

Type

Ottiene o imposta il tipo di contratto.

UnhandledDispatchOperation

Ottiene o imposta l'operazione alla quale vengono inviati i messaggi non riconosciuti.

ValidateMustUnderstand

Ottiene o imposta il valore di ValidateMustUnderstand.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a