Procedura: personalizzare un'associazione fornita dal sistema

Windows Communication Foundation (WCF) include diverse associazioni fornite dal sistema che consentono di configurare alcune delle proprietà degli elementi di associazione sottostanti. In questo argomento viene illustrato come impostare proprietà sugli elementi di associazione per creare un'associazione personalizzata.

Per ulteriori informazioni su come creare e configurare direttamente elementi di associazione senza utilizzare le associazioni fornite dal sistema, vedere Associazioni personalizzate.

Per ulteriori informazioni sulla creazione e l'estensione di associazioni personalizzate, vedere Estensione delle associazioni.

In WCF tutte le associazioni sono costituite da elementi di associazione. Ogni elemento di associazione deriva dalla classe BindingElement. Le associazioni fornite dal sistema, ad esempio BasicHttpBinding, creano e configurano propri elementi di associazione. In questo argomento viene illustrato come accedere e modificare le proprietà di questi elementi di associazione che non sono direttamente esposte sull'associazione; in particolare, la classe BasicHttpBinding.

I singoli elementi di associazione sono inclusi in un insieme rappresentato dalla classe BindingElementCollection e vengono aggiunti nell'ordine seguente: Flusso delle transazioni, Sessione affidabile, Protezione, Duplex composito, Unidirezionale, Protezione di flusso, Codifica messaggi e Trasporto. Si noti che non tutti gli elementi di associazione elencati sono necessari in ogni associazione. In questo insieme di elementi di associazione possono essere inclusi anche elementi di associazione definiti dall'utente, che devono essere visualizzati nello stesso ordine descritto in precedenza. Ad esempio, un trasporto definito dall'utente deve essere l'ultimo elemento dell'insieme di elementi di associazione.

La classe BasicHttpBinding contiene tre elementi di associazione:

  1. Un elemento di associazione di protezione facoltativo: la classe AsymmetricSecurityBindingElement utilizzata con il trasporto HTTP (protezione a livello di messaggio) o la classe TransportSecurityBindingElement utilizzata quando il livello di trasporto fornisce la protezione, caso in cui viene utilizzato il trasporto HTTPS.
  2. Un elemento di associazione del codificatore dei messaggi obbligatorio: TextMessageEncodingBindingElement o MtomMessageEncodingBindingElement.
  3. Un elemento di associazione del trasporto obbligatorio: HttpTransportBindingElement o HttpsTransportBindingElement.

In questo esempio viene creata un'istanza dell'associazione, da cui viene generata un'associazione personalizzata, vengono esaminati gli elementi di associazione nell'associazione personalizzata e, quando viene trovato l'elemento di associazione HTTP, viene impostata la proprietà KeepAliveEnabled su false. La proprietà KeepAliveEnabled non è esposta direttamente su BasicHttpBinding, pertanto è necessario creare un'associazione personalizzata per spostarsi verso il basso sull'elemento di associazione e impostare questa proprietà.

Per modificare un'associazione fornita dal sistema

  1. Creare un'istanza della classe BasicHttpBinding e impostarne la modalità di protezione a livello di messaggio.

  2. Creare un'associazione personalizzata dall'associazione e creare una classe BindingElementCollection da una delle proprietà dell'associazione personalizzata.

  3. Eseguire un ciclo nella classe BindingElementCollection e, quando viene trovata la classe HttpTransportBindingElement, impostarne la proprietà KeepAliveEnabled su false.

Vedere anche

Riferimenti

HttpTransportBindingElement
BasicHttpBinding
CustomBinding

Concetti

Associazioni personalizzate