Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il modello di applicazione Windows Communication Foundation (WCF) è progettato per risolvere la maggior parte dei requisiti di comunicazione di qualsiasi applicazione distribuita. Tuttavia, esistono sempre scenari che il modello di applicazione predefinito e le implementazioni fornite dal sistema non supportano. Il modello di estendibilità WCF è progettato per supportare scenari personalizzati consentendo di modificare il comportamento del sistema a ogni livello, anche al punto di sostituire l'intero modello di applicazione. In questo argomento vengono illustrate le varie aree di estensione e vengono illustrate altre informazioni su ognuna di esse.
Aree da ampliare
È possibile estendere:
Runtime dell'applicazione. Ciò estende l'invio e l'elaborazione dei messaggi per l'applicazione. Questa area include anche l'estensione del sistema di sicurezza, del sistema di metadati, del sistema di serializzazione e delle associazioni e degli elementi di associazione che connettono l'applicazione al sistema di canali sottostante.
Il canale e il runtime del canale. Questo estende il sistema che funziona a livello di messaggio, fornendo il protocollo, il trasporto e il supporto della codifica.
Runtime dell'host. In questo modo si estende la relazione del dominio dell'applicazione di hosting al canale e al runtime dell'applicazione.
Estensione del runtime dell'applicazione
Nelle applicazioni WCF esiste una distinzione tra i messaggi destinati a un canale e messaggi corrispondenti destinati all'applicazione stessa. I messaggi del canale supportano alcune funzionalità correlate al canale, ad esempio stabilire una conversazione sicura o stabilire una sessione affidabile. Questi messaggi non sono disponibili per il runtime dell'applicazione; vengono elaborati prima che venga coinvolto il livello dell'applicazione.
I messaggi dell'applicazione contengono dati destinati a un'operazione client o di servizio creata dall'utente o dal cliente. Questi messaggi sono disponibili per il sistema di estensione a livello di applicazione in formato messaggio o oggetto, a seconda delle esigenze.
Tutti i messaggi passano attraverso il sistema di canali; solo i messaggi dell'applicazione vengono passati dal sistema del canale all'applicazione. Per creare nuove funzionalità a livello di canale, è necessario estendere il sistema di canali. Per creare nuove funzionalità a livello di applicazione, è necessario estendere il servizio o il runtime client (rispettivamente dispatcher e channel factory). Per altre informazioni sull'estensione del runtime dell'applicazione, vedere Estensione di ServiceHost e del livello del modello di servizio.
Estensione della sicurezza
Per creare meccanismi di sicurezza personalizzati, ad esempio token e credenziali, è necessario estendere il sistema di sicurezza. Per altre informazioni, vedere Estensione della sicurezza.
Estensione dei metadati
Per esporre i metadati in modo diverso da quello predefinito, è necessario estendere il sistema di metadati. Per altre informazioni, vedere Estensione del sistema di metadati.
Estensione della serializzazione
Per creare codificatori personalizzati, fornire surrogati di dati o altri lavori che coinvolgono la personalizzazione dei dati trasferiti, è necessario estendere il sistema di serializzazione. Per altre informazioni, vedere Estensione di codificatori e serializzatori.
Estensione delle associazioni
Per associare i canali di trasporto o protocollo al livello dell'applicazione, è necessario estendere il sistema di associazione. Per altre informazioni, vedere Estensione delle associazioni.
Estensione del sistema dei canali
Per creare canali che supportano i trasporti personalizzati o la funzionalità del protocollo, vedere Estensione del livello canale.
Estensione del sistema di hosting dei servizi
Per modificare il modello applicativo a livello di servizio, è necessario estendere System.ServiceModel.ServiceHostBase la classe . Per altre informazioni, vedere Estensione di ServiceHost e del livello del modello di servizio.
Per modificare la relazione tra il dominio applicazione di hosting e l'host del servizio, è necessario estendere la System.ServiceModel.Activation.ServiceHostFactory classe . Per altre informazioni, vedere Estensione dell'hosting tramite ServiceHostFactory.