ClientBase<TChannel> Classe

Definizione

Offre l'implementazione di base usata per creare oggetti client di Windows Communication Foundation (WCF) che possono chiamare servizi.Provides the base implementation used to create Windows Communication Foundation (WCF) client objects that can call services.

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

Parametri di tipo

TChannel

Canale da utilizzare per la connessione al servizio.The channel to be used to connect to the service.

Ereditarietà
ClientBase<TChannel>
Derivato
Implementazioni

Esempi

Nell'esempio di codice seguente viene illustrato come lo strumento ServiceModel Metadata Utility Tool (Svcutil. exe) estende la classe ClientBase<TChannel> per creare una classe client WCF.The following code example shows how the ServiceModel Metadata Utility Tool (Svcutil.exe) extends the ClientBase<TChannel> class to create a WCF client class.

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 classe ClientBase<TChannel> per creare un oggetto client WCF personalizzato che può essere utilizzato per connettersi a un servizio.Extend the ClientBase<TChannel> class to create a custom WCF client object that can be used to connect to a service. In genere, la classe base client WCF viene estesa da uno strumento come lo strumento ServiceModel Metadata Utility Tool (Svcutil. exe) per conto dell'utente.Typically, the WCF client base class is extended by a tool such as the ServiceModel Metadata Utility Tool (Svcutil.exe) on your behalf. Per un esempio, vedere la sezione Esempio.For an example, see the Example section.

È 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>.The ClientBase<TChannel> class can be used quickly and easily by developers who prefer objects to the use of the interfaces and the System.ServiceModel.ChannelFactory<TChannel> class. 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.In all cases this class wraps or exposes the methods and functionality of the System.ServiceModel.ChannelFactory<TChannel> class and the System.ServiceModel.IClientChannel interface.

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.As when using the System.ServiceModel.ServiceHost class, you can create the class and modify the endpoint, channel factory, or security information prior to making any calls or calling Open. Per ulteriori informazioni, vedere Cenni preliminari sui client WCF e accesso ai servizi tramite un client WCF.For more information, see WCF Client Overview and Accessing Services Using a WCF Client.

Nota speciale in caso di derivazione da questa classe in C++ gestito:Special note for Managed C++ users deriving from this class:

  • Inserire il codice di pulitura in (On)(Begin)Close (e/o OnAbort), non in un distruttore.Put your clean-up code in (On)(Begin)Close (and/or OnAbort), not in a destructor.

  • Evitare i distruttori: comportano la generazione automatica dell'interfaccia IDisposable da parte del compilatore.Avoid destructors: they cause the compiler to auto-generate IDisposable.

  • Evitare membri di non riferimento: possono comportare la generazione automatica dell'interfaccia IDisposable da parte del compilatore.Avoid non-reference members: they can cause the compiler to auto-generate IDisposable.

  • 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.Avoid finalizers; but if you include one, you should suppress the build warning and call SuppressFinalize(Object) and the finalizer itself from (On)(Begin)Close (and/or OnAbort) to emulate what would have been the auto-generated IDisposable behavior.

Costruttori

ClientBase<TChannel>()

Inizializza una nuova istanza della classe ClientBase<TChannel> utilizzando l'endpoint di destinazione predefinito del file di configurazione dell'applicazione.Initializes a new instance of the ClientBase<TChannel> class using the default target endpoint from the application configuration file.

ClientBase<TChannel>(Binding, EndpointAddress)

Inizializza una nuova istanza della classe ClientBase<TChannel> utilizzando l'associazione e l'indirizzo endpoint specificati.Initializes a new instance of the ClientBase<TChannel> class using the specified binding and target address.

ClientBase<TChannel>(InstanceContext)

Inizializza una nuova istanza della classe ClientBase<TChannel> utilizzando il parametro callbackInstance come oggetto di callback in una conversazione duplex.Initializes a new instance of the ClientBase<TChannel> class using the callbackInstance as the callback object in a duplex conversation.

ClientBase<TChannel>(InstanceContext, Binding, EndpointAddress)

Inizializza una nuova istanza della classe ClientBase<TChannel>.Initializes a new instance of the ClientBase<TChannel> class.

ClientBase<TChannel>(InstanceContext, ServiceEndpoint)

Inizializza una nuova istanza della classe ClientBase<TChannel> tramite gli oggetti InstanceContext e ServiceEndpoint specificati.Initializes a new instance of the ClientBase<TChannel> class using the specified InstanceContext and ServiceEndpoint objects.

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.Initializes a new instance of the ClientBase<TChannel> class using the specified callback service and endpoint configuration information.

ClientBase<TChannel>(InstanceContext, String, EndpointAddress)

Inizializza una nuova istanza della classe ClientBase<TChannel>.Initializes a new instance of the ClientBase<TChannel> class.

ClientBase<TChannel>(InstanceContext, String, String)

Inizializza una nuova istanza della classe ClientBase<TChannel>.Initializes a new instance of the ClientBase<TChannel> class.

ClientBase<TChannel>(ServiceEndpoint)

Inizializza una nuova istanza della classe ClientBase<TChannel> usando l'elemento ServiceEndpoint specificato.Initializes a new instance of the ClientBase<TChannel> class using the specified ServiceEndpoint.

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.Initializes a new instance of the ClientBase<TChannel> class using the configuration information specified in the application configuration file by endpointConfigurationName.

ClientBase<TChannel>(String, EndpointAddress)

Inizializza una nuova istanza della classe ClientBase<TChannel> utilizzando le informazioni sull'endpoint e sull'indirizzo di destinazione specificate.Initializes a new instance of the ClientBase<TChannel> class using the specified target address and endpoint information.

ClientBase<TChannel>(String, String)

Inizializza una nuova istanza della classe ClientBase<TChannel>.Initializes a new instance of the ClientBase<TChannel> class.

Proprietà

CacheSetting

Ottiene o imposta l'impostazione della cache.Gets or sets the cache setting.

Channel

Ottiene il canale interno utilizzato per inviare messaggi a endpoint del servizio con diverse configurazioni.Gets the inner channel used to send messages to variously configured service endpoints.

ChannelFactory

Ottiene l'oggetto ChannelFactory<TChannel> sottostante.Gets the underlying ChannelFactory<TChannel> object.

ClientCredentials

Ottiene le credenziali client utilizzate per chiamare un'operazione.Gets the client credentials used to call an operation.

Endpoint

Ottiene l'endpoint di destinazione per il servizio al quale il client WCF può connettersi.Gets the target endpoint for the service to which the WCF client can connect.

InnerChannel

Ottiene l'implementazione dell'interfaccia IClientChannel sottostante.Gets the underlying IClientChannel implementation.

State

Ottiene lo stato corrente dell'oggetto ClientBase<TChannel>.Gets the current state of the ClientBase<TChannel> object.

Metodi

Abort()

Determina la transizione immediata dell'oggetto ClientBase<TChannel> dallo stato corrente allo stato di chiusura.Causes the ClientBase<TChannel> object to transition immediately from its current state into the closed state.

Close()

Determina la transizione dell'oggetto ClientBase<TChannel> dallo stato corrente allo stato di chiusura.Causes the ClientBase<TChannel> object to transition from its current state into the closed state.

CreateChannel()

Restituisce un nuovo canale per il servizio.Returns a new channel to the service.

DisplayInitializationUI()

Indica al canale interno di visualizzare un'interfaccia utente se necessaria per inizializzare il canale prima di utilizzarlo.Instructs the inner channel to display a user interface if one is required to initialize the channel prior to using it.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetDefaultValueForInitialization<T>()

Replica il comportamento della parola chiave predefinita in C#.Replicates the behavior of the default keyword in C#.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

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

Fornisce supporto per implementare il modello asincrono basato su eventiProvides support for implementing the event-based asynchronous pattern. Per ulteriori informazioni su questo modello, vedere Cenni preliminari sul modello asincrono basato su eventi.For more information about this pattern, see Event-based Asynchronous Pattern Overview.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
Open()

Determina la transizione dell'oggetto ClientBase<TChannel> dallo stato di creazione allo stato di apertura.Causes the ClientBase<TChannel> object to transition from the created state into the opened state.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

ICommunicationObject.BeginClose(AsyncCallback, Object)

Avvia un'operazione asincrona per chiudere l'oggetto ClientBase<TChannel>.Begins an asynchronous operation to close the ClientBase<TChannel>.

ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object)

Avvia un'operazione asincrona per chiudere l'oggetto ClientBase<TChannel> entro un determinato intervallo di tempo.Begins an asynchronous operation to close the ClientBase<TChannel> with a specified timeout.

ICommunicationObject.BeginOpen(AsyncCallback, Object)

Avvia un'operazione asincrona per aprire l'oggetto ClientBase<TChannel>.Begins an asynchronous operation to open the ClientBase<TChannel> object.

ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object)

Avvia un'operazione asincrona per aprire l'oggetto ClientBase<TChannel> entro l'intervallo di tempo specificato.Begins an asynchronous operation to open the ClientBase<TChannel> object within a specified interval of time.

ICommunicationObject.Close()
ICommunicationObject.Close(TimeSpan)

Determina la transizione dell'oggetto ClientBase<TChannel> dallo stato corrente allo stato di chiusura.Causes the ClientBase<TChannel> object to transition from its current state into the closed state.

ICommunicationObject.Closed

Gestore eventi richiamato quando l'oggetto ClientBase<TChannel> ha eseguito la transizione dallo stato corrente allo stato di chiusura.The event handler that is invoked when the ClientBase<TChannel> object has transitioned from its current state to the closed state.

ICommunicationObject.Closing

Gestore eventi richiamato quando l'oggetto ClientBase<TChannel> esegue la transizione dallo stato corrente allo stato di chiusura.The event handler that is invoked when the ClientBase<TChannel> object transitions from its current state to the closed state.

ICommunicationObject.EndClose(IAsyncResult)

Completa un'operazione asincrona di chiusura dell'oggetto ClientBase<TChannel>.Completes an asynchronous operation to close the ClientBase<TChannel> object.

ICommunicationObject.EndOpen(IAsyncResult)

Completa un'operazione asincrona di apertura dell'oggetto ClientBase<TChannel>.Completes an asynchronous operation to open the ClientBase<TChannel> object.

ICommunicationObject.Faulted

Gestore eventi richiamato quando si verifica un errore durante l'esecuzione di un'operazione sull'oggetto ClientBase<TChannel>.The event handler that is invoked when a fault occurs while performing an operation on the ClientBase<TChannel> object.

ICommunicationObject.Open()
ICommunicationObject.Open(TimeSpan)

Determina la transizione dell'oggetto ClientBase<TChannel> dallo stato di creazione allo stato di apertura entro l'intervallo di tempo specificato.Causes the ClientBase<TChannel> object to transition from the created state into the opened state within a specified interval of time.

ICommunicationObject.Opened

Gestore eventi richiamato quando l'oggetto ClientBase<TChannel> esegue la transizione dallo stato di creazione allo stato di apertura.The event handler that is invoked when the ClientBase<TChannel> object transitions from the created state to the opened state.

ICommunicationObject.Opening

Gestore eventi richiamato quando l'oggetto ClientBase<TChannel> esegue la transizione dallo stato di creazione allo stato di apertura.The event handler that is invoked when the ClientBase<TChannel> object transitions from the created state to the opened state.

IDisposable.Dispose()

Implementazione esplicita del metodo Dispose().Explicit implementation of the Dispose() method.

Si applica a