ClientBase<TChannel> Classe

Definizione

Offre l'implementazione di base usata per creare oggetti client di Windows Communication Foundation (WCF) che possono chiamare servizi.

generic <typename TChannel>
 where TChannel : classpublic ref class ClientBase abstract : IDisposable, System::ServiceModel::ICommunicationObject
generic <typename TChannel>
 where TChannel : classpublic ref class ClientBase abstract : System::ServiceModel::ICommunicationObject
public abstract class ClientBase<TChannel> : IDisposable, System.ServiceModel.ICommunicationObject where TChannel : class
public abstract class ClientBase<TChannel> : System.ServiceModel.ICommunicationObject where TChannel : class
type ClientBase<'Channel (requires 'Channel : null)> = class
    interface IDisposable
    interface ICommunicationObject
type ClientBase<'Channel (requires 'Channel : null)> = class
    interface ICommunicationObject
type ClientBase<'Channel (requires 'Channel : null)> = class
    interface ICommunicationObject
    interface IDisposable
Public MustInherit Class ClientBase(Of TChannel)
Implements ICommunicationObject, IDisposable
Public MustInherit Class ClientBase(Of TChannel)
Implements ICommunicationObject

Parametri di tipo

TChannel

Canale da utilizzare per la connessione al servizio.

Ereditarietà
ClientBase<TChannel>
Derivato
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato come lo strumento utilità metadati ServiceModel (Svcutil.exe) estende la ClientBase<TChannel> classe per creare una classe client WCF.

public partial class SampleServiceClient : System.ServiceModel.ClientBase<ISampleService>, ISampleService
{

    public SampleServiceClient()
    {
    }

    public SampleServiceClient(string endpointConfigurationName) :
            base(endpointConfigurationName)
    {
    }

    public SampleServiceClient(string endpointConfigurationName, string remoteAddress) :
            base(endpointConfigurationName, remoteAddress)
    {
    }

    public SampleServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
            base(endpointConfigurationName, remoteAddress)
    {
    }

    public SampleServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
            base(binding, remoteAddress)
    {
    }

    public string SampleMethod(string msg)
    {
        return base.Channel.SampleMethod(msg);
    }
}
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")> _
Partial Public Class SampleServiceClient
    Inherits System.ServiceModel.ClientBase(Of ISampleService)
    Implements ISampleService

    Public Sub New()
    End Sub

    Public Sub New(ByVal endpointConfigurationName As String)
        MyBase.New(endpointConfigurationName)
    End Sub

    Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As String)
        MyBase.New(endpointConfigurationName, remoteAddress)
    End Sub

    Public Sub New(ByVal endpointConfigurationName As String, _
                   ByVal remoteAddress As System.ServiceModel.EndpointAddress)
        MyBase.New(endpointConfigurationName, remoteAddress)
    End Sub

    Public Sub New(ByVal binding As System.ServiceModel.Channels.Binding, _
                   ByVal remoteAddress As System.ServiceModel.EndpointAddress)
        MyBase.New(binding, remoteAddress)
    End Sub

    Public Function SampleMethod(ByVal msg As String) As String Implements ISampleService.SampleMethod
        Return MyBase.Channel.SampleMethod(msg)
    End Function
End Class

Commenti

Estendere la ClientBase<TChannel> classe per creare un oggetto client WCF personalizzato che può essere usato per connettersi a un servizio. In genere, la classe di base client WCF viene estesa da uno strumento, ad esempio lo strumento ServiceModel Metadata Utility Tool (Svcutil.exe) per conto dell'utente. Per un esempio, vedere la sezione Esempio.

È possibile utilizzare in modo rapido e semplice la classe ClientBase<TChannel> se si preferisce utilizzare gli oggetti anziché le interfacce e la classe System.ServiceModel.ChannelFactory<TChannel>. In tutti i casi, in questa classe viene eseguito il wrapping o l'esposizione dei metodi e delle funzionalità della classe System.ServiceModel.ChannelFactory<TChannel> e dell'interfaccia System.ServiceModel.IClientChannel.

Analogamente a quando si utilizza la classe System.ServiceModel.ServiceHost, è possibile creare la classe e modificare l'endpoint, la channel factory o le informazioni sulla sicurezza prima di eseguire qualsiasi chiamata o di chiamare il metodo Open. Per altre informazioni, vedere Cenni preliminari sul client WCF e Accesso ai servizi tramite un client WCF.

Nota speciale in caso di derivazione da questa classe in C++ gestito:

  • Inserire il codice di pulitura in (On)(Begin)Close (e/o OnAbort), non in un distruttore.

  • Evitare i distruttori: comportano la generazione automatica dell'interfaccia IDisposable da parte del compilatore.

  • Evitare membri di non riferimento: possono comportare la generazione automatica dell'interfaccia IDisposable da parte del compilatore.

  • Evitare i finalizzatori. Se tuttavia si include un finalizzatore, è necessario annullare l'avviso di compilazione e chiamare il metodo SuppressFinalize(Object) e il finalizzatore stesso mediante (On)(Begin)Close (e/o OnAbort) al fine di emulare il comportamento dell'interfaccia IDisposable che sarebbe stata generata automaticamente.

Costruttori

ClientBase<TChannel>()

Inizializza una nuova istanza della classe ClientBase<TChannel> utilizzando l'endpoint di destinazione predefinito del file di configurazione dell'applicazione.

ClientBase<TChannel>(Binding, EndpointAddress)

Inizializza una nuova istanza della classe ClientBase<TChannel> utilizzando l'associazione e l'indirizzo endpoint specificati.

ClientBase<TChannel>(InstanceContext)

Inizializza una nuova istanza della classe ClientBase<TChannel> utilizzando il parametro callbackInstance come oggetto di callback in una conversazione duplex.

ClientBase<TChannel>(InstanceContext, Binding, EndpointAddress)

Inizializza una nuova istanza della classe ClientBase<TChannel>.

ClientBase<TChannel>(InstanceContext, ServiceEndpoint)

Inizializza una nuova istanza della classe ClientBase<TChannel> tramite gli oggetti InstanceContext e ServiceEndpoint specificati.

ClientBase<TChannel>(InstanceContext, String)

Inizializza una nuova istanza della classe ClientBase<TChannel> utilizzando il servizio di callback e le informazioni di configurazione dell'endpoint specificati.

ClientBase<TChannel>(InstanceContext, String, EndpointAddress)

Inizializza una nuova istanza della classe ClientBase<TChannel>.

ClientBase<TChannel>(InstanceContext, String, String)

Inizializza una nuova istanza della classe ClientBase<TChannel>.

ClientBase<TChannel>(ServiceEndpoint)

Inizializza una nuova istanza della classe ClientBase<TChannel> usando l'elemento ServiceEndpoint specificato.

ClientBase<TChannel>(String)

Inizializza una nuova istanza della classe ClientBase<TChannel> utilizzando le informazioni di configurazione specificate nel file di configurazione dell'applicazione mediante il parametro endpointConfigurationName.

ClientBase<TChannel>(String, EndpointAddress)

Inizializza una nuova istanza della classe ClientBase<TChannel> utilizzando le informazioni sull'endpoint e sull'indirizzo di destinazione specificate.

ClientBase<TChannel>(String, String)

Inizializza una nuova istanza della classe ClientBase<TChannel>.

Proprietà

CacheSetting

Ottiene o imposta l'impostazione della cache.

Channel

Ottiene il canale interno utilizzato per inviare messaggi a endpoint del servizio con diverse configurazioni.

ChannelFactory

Ottiene l'oggetto ChannelFactory<TChannel> sottostante.

ClientCredentials

Ottiene le credenziali client utilizzate per chiamare un'operazione.

Endpoint

Ottiene l'endpoint di destinazione per il servizio al quale il client WCF può connettersi.

InnerChannel

Ottiene l'implementazione dell'interfaccia IClientChannel sottostante.

State

Ottiene lo stato corrente dell'oggetto ClientBase<TChannel>.

Metodi

Abort()

Determina la transizione immediata dell'oggetto ClientBase<TChannel> dallo stato corrente allo stato di chiusura.

Close()

Determina la transizione dell'oggetto ClientBase<TChannel> dallo stato corrente allo stato di chiusura.

CreateChannel()

Restituisce un nuovo canale per il servizio.

DisplayInitializationUI()

Indica al canale interno di visualizzare un'interfaccia utente se necessaria per inizializzare il canale prima di utilizzarlo.

Equals(Object)

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

(Ereditato da Object)
GetDefaultValueForInitialization<T>()

Replica il comportamento della parola chiave predefinita in C#.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
InvokeAsync(ClientBase<TChannel>.BeginOperationDelegate, Object[], ClientBase<TChannel>.EndOperationDelegate, SendOrPostCallback, Object)

Fornisce supporto per implementare il modello asincrono basato su eventi Per ulteriori informazioni su questo modello, vedere Cenni preliminari sul modello asincrono basato su eventi.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Open()

Determina la transizione dell'oggetto ClientBase<TChannel> dallo stato di creazione allo stato di apertura.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

ICommunicationObject.BeginClose(AsyncCallback, Object)

Avvia un'operazione asincrona per chiudere l'oggetto ClientBase<TChannel>.

ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object)

Avvia un'operazione asincrona per chiudere l'oggetto ClientBase<TChannel> entro un determinato intervallo di tempo.

ICommunicationObject.BeginOpen(AsyncCallback, Object)

Avvia un'operazione asincrona per aprire l'oggetto ClientBase<TChannel>.

ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object)

Avvia un'operazione asincrona per aprire l'oggetto ClientBase<TChannel> entro l'intervallo di tempo specificato.

ICommunicationObject.Close()

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

ICommunicationObject.Close(TimeSpan)

Determina la transizione dell'oggetto ClientBase<TChannel> dallo stato corrente allo stato di chiusura.

ICommunicationObject.Closed

Gestore eventi richiamato quando l'oggetto ClientBase<TChannel> ha eseguito la transizione dallo stato corrente allo stato di chiusura.

ICommunicationObject.Closing

Gestore eventi richiamato quando l'oggetto ClientBase<TChannel> esegue la transizione dallo stato corrente allo stato di chiusura.

ICommunicationObject.EndClose(IAsyncResult)

Completa un'operazione asincrona di chiusura dell'oggetto ClientBase<TChannel>.

ICommunicationObject.EndOpen(IAsyncResult)

Completa un'operazione asincrona di apertura dell'oggetto ClientBase<TChannel>.

ICommunicationObject.Faulted

Gestore eventi richiamato quando si verifica un errore durante l'esecuzione di un'operazione sull'oggetto ClientBase<TChannel>.

ICommunicationObject.Open()

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

ICommunicationObject.Open(TimeSpan)

Determina la transizione dell'oggetto ClientBase<TChannel> dallo stato di creazione allo stato di apertura entro l'intervallo di tempo specificato.

ICommunicationObject.Opened

Gestore eventi richiamato quando l'oggetto ClientBase<TChannel> esegue la transizione dallo stato di creazione allo stato di apertura.

ICommunicationObject.Opening

Gestore eventi richiamato quando l'oggetto ClientBase<TChannel> esegue la transizione dallo stato di creazione allo stato di apertura.

IDisposable.Dispose()

Implementazione esplicita del metodo Dispose().

Si applica a