ChannelBase Classe

Definizione

Fornisce l'implementazione di base per i canali personalizzati.

public ref class ChannelBase abstract : System::ServiceModel::Channels::CommunicationObject, System::ServiceModel::Channels::IChannel, System::ServiceModel::IDefaultCommunicationTimeouts
public abstract class ChannelBase : System.ServiceModel.Channels.CommunicationObject, System.ServiceModel.Channels.IChannel, System.ServiceModel.IDefaultCommunicationTimeouts
type ChannelBase = class
    inherit CommunicationObject
    interface IChannel
    interface ICommunicationObject
    interface IDefaultCommunicationTimeouts
Public MustInherit Class ChannelBase
Inherits CommunicationObject
Implements IChannel, IDefaultCommunicationTimeouts
Ereditarietà
Derivato
Implementazioni

Commenti

Importante

La chiamata a metodi da questa classe con dati non attendibili costituisce un rischio per la sicurezza. Chiamare i metodi da questa classe solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.

La classe ChannelBase fornisce un'implementazione di classe di base astratta dell'interfaccia IChannel. Richiede inoltre che ogni canale sia associato a un gestore canali. L'unico costruttore disponibile per la creazione di istanze di ChannelBase richiede un parametro di input channelManager.

Le modifiche dello stato vengono gestite per eredità dall'implementazione CommunicationObject della macchina a stati.

La classe ChannelBase ottiene i timeout di comunicazione predefiniti per le operazioni di apertura, chiusura, invio e ricezione dalla classe ChannelManagerBase ad essa associata.

L'oggetto ChannelBase gestisce inoltre il gestore. Oltre a esporre un riferimento al gestore, la classe di base notifica al gestore la creazione e l'eliminazione definitiva di canali. Il riferimento al gestore, tuttavia, è valido solo fino a quando il canale non viene eliminato.

Anche se si utilizza la classe di base, è comunque necessario fornire i comportamenti per l'apertura e la chiusura del canale. Le implementazioni predefinite di questi metodi non forniscono informazioni utili.

È necessario inoltre assicurarsi di eseguire l'override del metodo GetProperty ogni volta che si implementa un canale. GetProperty è un ottimo modo per comunicare le informazioni lungo lo stack di canali senza dover sapere quali canali sono sotto l'utente o quali canali sopra possono eseguire query. Definire interfacce che possano essere interrogate per ottenere informazioni disponibili. Quando non è possibile riconoscere l'argomento tipo per il metodo GetProperty, delegare verso il basso al canale successivo nello stack o restituire null se si sta creando un nuovo canale di trasporto in fondo allo stack.

Costruttori

ChannelBase(ChannelManagerBase)

Inizializza una nuova istanza della classe ChannelBase.

Proprietà

DefaultCloseTimeout

Ottiene l'intervallo di tempo predefinito fornito per il completamento di un'operazione di chiusura.

DefaultOpenTimeout

Ottiene l'intervallo di tempo predefinito fornito per il completamento di un'operazione di apertura.

DefaultReceiveTimeout

Ottiene l'intervallo di tempo predefinito fornito per il completamento di un'operazione di ricezione.

DefaultSendTimeout

Ottiene l'intervallo di tempo predefinito fornito per il completamento di un'operazione di invio.

IsDisposed

Ottiene un valore che indica se l'oggetto di comunicazione è stato eliminato.

(Ereditato da CommunicationObject)
Manager

Ottiene il gestore canali associato al canale corrente.

State

Ottiene un valore che indica lo stato corrente dell'oggetto di comunicazione.

(Ereditato da CommunicationObject)
ThisLock

Ottiene il blocco a esclusione reciproca che protegge l'istanza della classe durante una transizione di stato.

(Ereditato da CommunicationObject)

Metodi

Abort()

Determina la transizione immediata di un oggetto di comunicazione dallo stato corrente allo stato di chiusura.

(Ereditato da CommunicationObject)
BeginClose(AsyncCallback, Object)

Consente di iniziare un'operazione asincrona finalizzata a chiudere un oggetto di comunicazione.

(Ereditato da CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Consente di iniziare un'operazione asincrona finalizzata a chiudere un oggetto di comunicazione entro un determinato intervallo di tempo.

(Ereditato da CommunicationObject)
BeginOpen(AsyncCallback, Object)

Consente di iniziare un'operazione asincrona finalizzata ad aprire un oggetto di comunicazione.

(Ereditato da CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Consente di iniziare un'operazione asincrona finalizzata ad aprire un oggetto di comunicazione entro un determinato intervallo di tempo.

(Ereditato da CommunicationObject)
Close()

Comporta la transizione di un oggetto di comunicazione dallo stato corrente allo stato di chiusura.

(Ereditato da CommunicationObject)
Close(TimeSpan)

Determina la transizione di un oggetto di comunicazione dallo stato corrente allo stato Closed entro un intervallo di tempo specificato.

(Ereditato da CommunicationObject)
EndClose(IAsyncResult)

Consente di completare un'operazione asincrona finalizzata a chiudere un oggetto di comunicazione.

(Ereditato da CommunicationObject)
EndOpen(IAsyncResult)

Consente di completare un'operazione asincrona finalizzata ad aprire un oggetto di comunicazione.

(Ereditato da CommunicationObject)
Equals(Object)

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

(Ereditato da Object)
Fault()

Determina la transizione di un oggetto di comunicazione dallo stato corrente allo stato Faulted.

(Ereditato da CommunicationObject)
GetCommunicationObjectType()

Ottiene il tipo di oggetto di comunicazione.

(Ereditato da CommunicationObject)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetProperty<T>()

Restituisce l'oggetto tipizzato richiesto, se disponibile, dal livello appropriato nello stack dei canali.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnAbort()

Inserisce l'elaborazione in un oggetto di comunicazione dopo che è passato allo stato di chiusura a causa della chiamata di un'operazione di interruzione sincrona.

(Ereditato da CommunicationObject)
OnBeginClose(TimeSpan, AsyncCallback, Object)

Inserisce istruzioni di elaborazione dopo che un oggetto di comunicazione esegue la transizione allo stato Closing in seguito alla chiamata di un'operazione di chiusura asincrona.

(Ereditato da CommunicationObject)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Inserisce l'elaborazione in un oggetto di comunicazione dopo che l'oggetto ha eseguito la transizione allo stato Opening in seguito alla chiamata di un'operazione di apertura asincrona.

(Ereditato da CommunicationObject)
OnClose(TimeSpan)

Inserisce l'elaborazione in un oggetto di comunicazione dopo che l'oggetto ha eseguito la transizione allo stato Closing in seguito alla chiamata di un'operazione di chiusura sincrona.

(Ereditato da CommunicationObject)
OnCloseAsync(TimeSpan)

Fornisce l'implementazione di base per i canali personalizzati.

(Ereditato da CommunicationObject)
OnClosed()

Utilizza la traccia diagnostica durante la transizione allo stato di prechiusura.

OnClosing()

Viene chiamato durante la transizione di un oggetto di comunicazione allo stato di chiusura.

(Ereditato da CommunicationObject)
OnEndClose(IAsyncResult)

Consente di completare un'operazione asincrona alla chiusura di un oggetto di comunicazione.

(Ereditato da CommunicationObject)
OnEndOpen(IAsyncResult)

Consente di completare un'operazione asincrona all'apertura di un oggetto di comunicazione.

(Ereditato da CommunicationObject)
OnFaulted()

Inserisce l'elaborazione in un oggetto di comunicazione dopo che ha eseguito la transizione allo stato Faulted in seguito alla chiamata di un'operazione di errore sincrona.

(Ereditato da CommunicationObject)
OnOpen(TimeSpan)

Inserisce l'elaborazione in un oggetto di comunicazione dopo che ha eseguito la transizione allo stato di apertura che deve essere completato entro l'intervallo di tempo specificato.

(Ereditato da CommunicationObject)
OnOpenAsync(TimeSpan)

Fornisce l'implementazione di base per i canali personalizzati.

(Ereditato da CommunicationObject)
OnOpened()

Viene chiamato durante la transizione di un oggetto di comunicazione allo stato Opened.

(Ereditato da CommunicationObject)
OnOpening()

Viene chiamato durante la transizione di un oggetto di comunicazione allo stato Opening.

(Ereditato da CommunicationObject)
Open()

Comporta la transizione di un oggetto di comunicazione dallo stato di creazione allo stato di apertura.

(Ereditato da CommunicationObject)
Open(TimeSpan)

Comporta la transizione di un oggetto di comunicazione dallo stato di creazione allo stato di apertura entro un determinato intervallo di tempo.

(Ereditato da CommunicationObject)
ThrowIfDisposed()

Se l'oggetto di comunicazione è stato eliminato, genera un'eccezione.

(Ereditato da CommunicationObject)
ThrowIfDisposedOrImmutable()

Se la proprietà State dell'oggetto di comunicazione non è impostata su Created, genera un'eccezione.

(Ereditato da CommunicationObject)
ThrowIfDisposedOrNotOpen()

Se l'oggetto di comunicazione non si trova nello stato Opened, genera un'eccezione.

(Ereditato da CommunicationObject)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

Closed

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Closed.

(Ereditato da CommunicationObject)
Closing

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Closing.

(Ereditato da CommunicationObject)
Faulted

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Faulted.

(Ereditato da CommunicationObject)
Opened

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Opened.

(Ereditato da CommunicationObject)
Opening

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Opening.

(Ereditato da CommunicationObject)

Implementazioni dell'interfaccia esplicita

IAsyncCommunicationObject.CloseAsync(TimeSpan)

Fornisce l'implementazione di base per i canali personalizzati.

(Ereditato da CommunicationObject)
IAsyncCommunicationObject.OpenAsync(TimeSpan)

Fornisce l'implementazione di base per i canali personalizzati.

(Ereditato da CommunicationObject)
IDefaultCommunicationTimeouts.CloseTimeout

Ottiene l'intervallo di tempo al termine del quale si verifica il timeout del metodo Close richiamato da un oggetto di comunicazione.

IDefaultCommunicationTimeouts.OpenTimeout

Ottiene l'intervallo di tempo al termine del quale si verifica il timeout del metodo Open richiamato da un oggetto di comunicazione.

IDefaultCommunicationTimeouts.ReceiveTimeout

Ottiene l'intervallo di tempo al termine del quale si verifica il timeout del metodo Receive richiamato da un oggetto di comunicazione.

IDefaultCommunicationTimeouts.SendTimeout

Ottiene l'intervallo di tempo al termine del quale si verifica timeout del metodo Send richiamato da un oggetto di comunicazione.

Metodi di estensione

CloseHelperAsync(ICommunicationObject, TimeSpan)

Fornisce l'implementazione di base per i canali personalizzati.

OpenHelperAsync(ICommunicationObject, TimeSpan)

Fornisce l'implementazione di base per i canali personalizzati.

GetInternalCloseTimeout(CommunicationObject)

Fornisce l'implementazione di base per i canali personalizzati.

Si applica a