ClientBase<TChannel> ClientBase<TChannel> ClientBase<TChannel> ClientBase<TChannel> Class

Definition

Stellt die Basisimplementierung bereit, die verwendet wird, um Windows Communication Foundation-Clientobjekte zu erstellen, die Dienste anrufen können.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

Typparameter

TChannel

Der Kanal, der für die Verbindung mit dem Dienst verwendet werden soll.The channel to be used to connect to the service.

Vererbung
ClientBase<TChannel>ClientBase<TChannel>ClientBase<TChannel>ClientBase<TChannel>
Abgeleitet
Implementiert

Beispiele

Das folgende Codebeispiel zeigt die ServiceModel Metadata Utility Tool (Svcutil.exe) erweitert die ClientBase<TChannel> Klasse, um einen WCF-Clientklasse zu erstellen.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

Hinweise

Erweitern Sie die ClientBase<TChannel> Klasse, um ein benutzerdefiniertes WCF-Client-Objekt zu erstellen, die für die Verbindung mit einem Dienst verwendet werden können.Extend the ClientBase<TChannel> class to create a custom WCF client object that can be used to connect to a service. In der Regel die Basisklasse für die WCF-Client wird erweitert, indem ein Tool wie z. B. die ServiceModel Metadata Utility Tool (Svcutil.exe) in Ihrem Namen.Typically, the WCF client base class is extended by a tool such as the ServiceModel Metadata Utility Tool (Svcutil.exe) on your behalf. Ein Beispiel hierfür finden Sie im Beispielabschnitt.For an example, see the Example section.

Die ClientBase<TChannel>-Klasse kann schnell und problemlos von Entwicklern verwendet werden, die die Verwendung von Objekten der Verwendung der Schnittstellen und der System.ServiceModel.ChannelFactory<TChannel>-Klasse vorziehen.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 allen Fällen schließt diese Klasse die Methoden und die Funktionalität der System.ServiceModel.ChannelFactory<TChannel>-Klasse und der System.ServiceModel.IClientChannel-Schnittstelle ein und macht sie verfügbar.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.

Wie bei der Verwendung der System.ServiceModel.ServiceHost-Klasse können Sie die Klasse erstellen und den Endpunkt, die Kanalfactory oder die Sicherheitsinformationen modifizieren, bevor Sie beliebige Elemente oder Open aufrufen.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. Weitere Informationen finden Sie unter WCF Client Overview und Zugriff auf Dienste, die mithilfe eines WCF-Clients.For more information, see WCF Client Overview and Accessing Services Using a WCF Client.

Spezieller Hinweis für Benutzer von Managed C++, die von dieser Klasse ableiten:Special note for Managed C++ users deriving from this class:

  • Fügen Sie den Bereinigungscode in (On)(Begin)Close (and/or OnAbort) ein, nicht in einen Destruktor.Put your clean-up code in (On)(Begin)Close (and/or OnAbort), not in a destructor.

  • Vermeiden Sie Destruktoren: Sie bewirken, dass der Compiler IDisposable automatisch generiert.Avoid destructors: they cause the compiler to auto-generate IDisposable.

  • Vermeiden Sie Member ohne Verweis: Sie können bewirken, dass der Compiler IDisposable automatisch generiert.Avoid non-reference members: they can cause the compiler to auto-generate IDisposable.

  • Vermeiden Sie Finalizer. Wenn Sie dennoch einen Finalizer verwenden, sollten Sie die Buildwarnung unterdrücken und SuppressFinalize(Object) sowie den Finalizer über (On)(Begin)Close (and/or OnAbort) aufrufen, um das ansonsten automatisch generierte IDisposable-Verhalten zu emulieren.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.

Konstruktoren

ClientBase<TChannel>() ClientBase<TChannel>() ClientBase<TChannel>() ClientBase<TChannel>()

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse, indem der standardmäßige Zielendpunkt der Anwendungskonfigurationsdatei verwendet wird.Initializes a new instance of the ClientBase<TChannel> class using the default target endpoint from the application configuration file.

ClientBase<TChannel>(Binding, EndpointAddress) ClientBase<TChannel>(Binding, EndpointAddress) ClientBase<TChannel>(Binding, EndpointAddress) ClientBase<TChannel>(Binding, EndpointAddress)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse unter Verwendung der angegebenen Bindung und Endpunktadresse.Initializes a new instance of the ClientBase<TChannel> class using the specified binding and target address.

ClientBase<TChannel>(InstanceContext) ClientBase<TChannel>(InstanceContext) ClientBase<TChannel>(InstanceContext) ClientBase<TChannel>(InstanceContext)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse, indem callbackInstance als Rückrufobjekt in einer Duplexkonversation verwendet wird.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) ClientBase<TChannel>(InstanceContext, Binding, EndpointAddress) ClientBase<TChannel>(InstanceContext, Binding, EndpointAddress) ClientBase<TChannel>(InstanceContext, Binding, EndpointAddress)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse.Initializes a new instance of the ClientBase<TChannel> class.

ClientBase<TChannel>(InstanceContext, ServiceEndpoint) ClientBase<TChannel>(InstanceContext, ServiceEndpoint) ClientBase<TChannel>(InstanceContext, ServiceEndpoint) ClientBase<TChannel>(InstanceContext, ServiceEndpoint)

Initialisiert mit den angegebenen ClientBase<TChannel>- und InstanceContext-Objekten eine neue Instanz der ServiceEndpoint-Klasse.Initializes a new instance of the ClientBase<TChannel> class using the specified InstanceContext and ServiceEndpoint objects.

ClientBase<TChannel>(InstanceContext, String) ClientBase<TChannel>(InstanceContext, String) ClientBase<TChannel>(InstanceContext, String) ClientBase<TChannel>(InstanceContext, String)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse unter Verwendung des angegebenen Rückrufdiensts und der Endpunktkonfigurationsinformationen.Initializes a new instance of the ClientBase<TChannel> class using the specified callback service and endpoint configuration information.

ClientBase<TChannel>(InstanceContext, String, EndpointAddress) ClientBase<TChannel>(InstanceContext, String, EndpointAddress) ClientBase<TChannel>(InstanceContext, String, EndpointAddress) ClientBase<TChannel>(InstanceContext, String, EndpointAddress)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse.Initializes a new instance of the ClientBase<TChannel> class.

ClientBase<TChannel>(InstanceContext, String, String) ClientBase<TChannel>(InstanceContext, String, String) ClientBase<TChannel>(InstanceContext, String, String) ClientBase<TChannel>(InstanceContext, String, String)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse.Initializes a new instance of the ClientBase<TChannel> class.

ClientBase<TChannel>(ServiceEndpoint) ClientBase<TChannel>(ServiceEndpoint) ClientBase<TChannel>(ServiceEndpoint) ClientBase<TChannel>(ServiceEndpoint)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse mit dem angegebenen ServiceEndpoint.Initializes a new instance of the ClientBase<TChannel> class using the specified ServiceEndpoint.

ClientBase<TChannel>(String) ClientBase<TChannel>(String) ClientBase<TChannel>(String) ClientBase<TChannel>(String)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse, indem die in der Anwendungskonfigurationsdatei angegebenen Konfigurationsinformationen von endpointConfigurationName verwendet werden.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) ClientBase<TChannel>(String, EndpointAddress) ClientBase<TChannel>(String, EndpointAddress) ClientBase<TChannel>(String, EndpointAddress)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse unter Verwendung der angegebenen Zieladresse und den Endpunktinformationen.Initializes a new instance of the ClientBase<TChannel> class using the specified target address and endpoint information.

ClientBase<TChannel>(String, String) ClientBase<TChannel>(String, String) ClientBase<TChannel>(String, String) ClientBase<TChannel>(String, String)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse.Initializes a new instance of the ClientBase<TChannel> class.

Eigenschaften

CacheSetting CacheSetting CacheSetting CacheSetting

Ruft die Cacheeinstellungen ab oder legt sie fest.Gets or sets the cache setting.

Channel Channel Channel Channel

Ruft den inneren Kanal ab, der verwendet wird, um Meldungen an unterschiedlich konfigurierte Endpunkte zu senden.Gets the inner channel used to send messages to variously configured service endpoints.

ChannelFactory ChannelFactory ChannelFactory ChannelFactory

Ruft das zugrunde liegende ChannelFactory<TChannel>-Objekt ab.Gets the underlying ChannelFactory<TChannel> object.

ClientCredentials ClientCredentials ClientCredentials ClientCredentials

Ruft die Clientanmeldeinformationen ab, die verwendet werden, um einen Vorgang aufzurufen.Gets the client credentials used to call an operation.

Endpoint Endpoint Endpoint Endpoint

Ruft den Zielendpunkt für den Dienst ab, mit dem der WCF-Client eine Verbindung herstellen kann.Gets the target endpoint for the service to which the WCF client can connect.

InnerChannel InnerChannel InnerChannel InnerChannel

Ruft die zugrunde liegende IClientChannel-Implementierung ab.Gets the underlying IClientChannel implementation.

State State State State

Ruft den aktuellen Zustand des ClientBase<TChannel>-Objekts ab.Gets the current state of the ClientBase<TChannel> object.

Methoden

Abort() Abort() Abort() Abort()

Bewirkt, dass das ClientBase<TChannel>-Objekt von seinem aktuellen Zustand in den geschlossenen Zustand übergeht.Causes the ClientBase<TChannel> object to transition immediately from its current state into the closed state.

Close() Close() Close() Close()

Bewirkt, dass ein ClientBase<TChannel>-Objekt von seinem aktuellen Zustand in den geschlossenen Zustand wechselt.Causes the ClientBase<TChannel> object to transition from its current state into the closed state.

CreateChannel() CreateChannel() CreateChannel() CreateChannel()

Gibt einen neuen Kanal an den Dienst zurück.Returns a new channel to the service.

DisplayInitializationUI() DisplayInitializationUI() DisplayInitializationUI() DisplayInitializationUI()

Weist den inneren Kanal an, eine Benutzeroberfläche anzuzeigen, wenn eine solche zum Initialisieren des Kanals vor der Verwendung erforderlich ist.Instructs the inner channel to display a user interface if one is required to initialize the channel prior to using it.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetDefaultValueForInitialization<T>() GetDefaultValueForInitialization<T>() GetDefaultValueForInitialization<T>() GetDefaultValueForInitialization<T>()

Repliziert das Verhalten des Standardschlüsselworts in C#.Replicates the behavior of the default keyword in C#.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
InvokeAsync(ClientBase<TChannel>, Object[], ClientBase<TChannel>, SendOrPostCallback, Object) InvokeAsync(ClientBase<TChannel>, Object[], ClientBase<TChannel>, SendOrPostCallback, Object) InvokeAsync(ClientBase<TChannel>, Object[], ClientBase<TChannel>, SendOrPostCallback, Object) InvokeAsync(ClientBase<TChannel>, Object[], ClientBase<TChannel>, SendOrPostCallback, Object)

Bietet Unterstützung für das Implementieren des ereignisbasierten asynchronen Musters.Provides support for implementing the event-based asynchronous pattern. Weitere Informationen zu diesem Muster finden Sie unter Übersicht über ereignisbasierte asynchrone Muster.For more information about this pattern, see Event-based Asynchronous Pattern Overview.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Open() Open() Open() Open()

Bewirkt, dass das ClientBase<TChannel>-Objekt vom Erstellt-Zustand in den Geöffnet-Zustand übergeht.Causes the ClientBase<TChannel> object to transition from the created state into the opened state.

ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Explizite Schnittstellenimplementierungen

ICommunicationObject.BeginClose(AsyncCallback, Object) ICommunicationObject.BeginClose(AsyncCallback, Object) ICommunicationObject.BeginClose(AsyncCallback, Object) ICommunicationObject.BeginClose(AsyncCallback, Object)

Beginnt einen asynchronen Vorgang, um ClientBase<TChannel> zu schließen.Begins an asynchronous operation to close the ClientBase<TChannel>.

ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object) ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object) ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object) ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ClientBase<TChannel> mit einem angegebenen Timeout zu schließen.Begins an asynchronous operation to close the ClientBase<TChannel> with a specified timeout.

ICommunicationObject.BeginOpen(AsyncCallback, Object) ICommunicationObject.BeginOpen(AsyncCallback, Object) ICommunicationObject.BeginOpen(AsyncCallback, Object) ICommunicationObject.BeginOpen(AsyncCallback, Object)

Startet einen asynchronen Vorgang, um das ClientBase<TChannel>-Objekt zu öffnen.Begins an asynchronous operation to open the ClientBase<TChannel> object.

ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object) ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object) ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object) ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, um das ClientBase<TChannel>-Objekt innerhalb eines angegebenen Zeitintervalls zu öffnen.Begins an asynchronous operation to open the ClientBase<TChannel> object within a specified interval of time.

ICommunicationObject.Close() ICommunicationObject.Close() ICommunicationObject.Close() ICommunicationObject.Close()
ICommunicationObject.Close(TimeSpan) ICommunicationObject.Close(TimeSpan) ICommunicationObject.Close(TimeSpan) ICommunicationObject.Close(TimeSpan)

Bewirkt, dass ein ClientBase<TChannel>-Objekt von seinem aktuellen Zustand in den geschlossenen Zustand wechselt.Causes the ClientBase<TChannel> object to transition from its current state into the closed state.

ICommunicationObject.Closed ICommunicationObject.Closed ICommunicationObject.Closed ICommunicationObject.Closed

Der Ereignishandler, der aufgerufen wird, wenn das ClientBase<TChannel>-Objekt von seinem aktuellen Zustand in den geschlossenen Zustand übergegangen ist.The event handler that is invoked when the ClientBase<TChannel> object has transitioned from its current state to the closed state.

ICommunicationObject.Closing ICommunicationObject.Closing ICommunicationObject.Closing ICommunicationObject.Closing

Der Ereignishandler, der aufgerufen wird, wenn das ClientBase<TChannel>-Objekt von seinem aktuellen Zustand in den geschlossenen Zustand übergeht.The event handler that is invoked when the ClientBase<TChannel> object transitions from its current state to the closed state.

ICommunicationObject.EndClose(IAsyncResult) ICommunicationObject.EndClose(IAsyncResult) ICommunicationObject.EndClose(IAsyncResult) ICommunicationObject.EndClose(IAsyncResult)

Beendet einen asynchronen Vorgang, um das ClientBase<TChannel>-Objekt zu schließen.Completes an asynchronous operation to close the ClientBase<TChannel> object.

ICommunicationObject.EndOpen(IAsyncResult) ICommunicationObject.EndOpen(IAsyncResult) ICommunicationObject.EndOpen(IAsyncResult) ICommunicationObject.EndOpen(IAsyncResult)

Beendet einen asynchronen Vorgang, um das ClientBase<TChannel>-Objekt zu öffnen.Completes an asynchronous operation to open the ClientBase<TChannel> object.

ICommunicationObject.Faulted ICommunicationObject.Faulted ICommunicationObject.Faulted ICommunicationObject.Faulted

Der Ereignishandler, der aufgerufen wird, wenn beim Ausführen eines Vorgangs auf dem ClientBase<TChannel>-Objekt ein Fehler auftritt.The event handler that is invoked when a fault occurs while performing an operation on the ClientBase<TChannel> object.

ICommunicationObject.Open() ICommunicationObject.Open() ICommunicationObject.Open() ICommunicationObject.Open()
ICommunicationObject.Open(TimeSpan) ICommunicationObject.Open(TimeSpan) ICommunicationObject.Open(TimeSpan) ICommunicationObject.Open(TimeSpan)

Bewirkt, dass das ClientBase<TChannel>-Objekt innerhalb eines angegebenen Zeitraums vom Erstellt-Zustand in den Geöffnet-Zustand übergeht.Causes the ClientBase<TChannel> object to transition from the created state into the opened state within a specified interval of time.

ICommunicationObject.Opened ICommunicationObject.Opened ICommunicationObject.Opened ICommunicationObject.Opened

Der Ereignishandler, der aufgerufen wird, wenn das ClientBase<TChannel>-Objekt vom Erstellt-Zustand in den Geöffnet-Zustand übergeht.The event handler that is invoked when the ClientBase<TChannel> object transitions from the created state to the opened state.

ICommunicationObject.Opening ICommunicationObject.Opening ICommunicationObject.Opening ICommunicationObject.Opening

Der Ereignishandler, der aufgerufen wird, wenn das ClientBase<TChannel>-Objekt vom Erstellt-Zustand in den Geöffnet-Zustand übergeht.The event handler that is invoked when the ClientBase<TChannel> object transitions from the created state to the opened state.

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

Eine explizite Implementierung der Dispose()-Methode.Explicit implementation of the Dispose() method.

Gilt für: