ClientBase<TChannel> Klasse

Definition

Stellt die Basisimplementierung bereit, die verwendet wird, um Windows Communication Foundation-Clientobjekte zu erstellen, die Dienste anrufen können.

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

Typparameter

TChannel

Der Kanal, der für die Verbindung mit dem Dienst verwendet werden soll.

Vererbung
ClientBase<TChannel>
Abgeleitet
Implementiert

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie das ServiceModel Metadata Utility Tool (Svcutil.exe) die ClientBase<TChannel> Klasse erweitert, um eine WCF-Clientklasse zu erstellen.

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-Clientobjekt zu erstellen, das zum Herstellen einer Verbindung mit einem Dienst verwendet werden kann. In der Regel wird die WCF-Clientbasisklasse durch ein Tool wie das ServiceModel Metadata Utility Tool (Svcutil.exe) in Ihrem Auftrag erweitert. Ein Beispiel finden Sie im Abschnitt „Beispiel“.

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. 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.

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. Weitere Informationen finden Sie unter WCF-Clientübersicht und Zugriff auf Dienste mithilfe eines WCF-Clients.

Spezieller Hinweis für Benutzer von Managed C++, die von dieser Klasse ableiten:

  • Fügen Sie den Bereinigungscode in (On)(Begin)Close (and/or OnAbort) ein, nicht in einen Destruktor.

  • Vermeiden Sie Destruktoren: Sie bewirken, dass der Compiler IDisposable automatisch generiert.

  • Vermeiden Sie Member ohne Verweis: Sie können bewirken, dass der Compiler IDisposable automatisch generiert.

  • 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.

Konstruktoren

ClientBase<TChannel>()

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse, indem der standardmäßige Zielendpunkt der Anwendungskonfigurationsdatei verwendet wird.

ClientBase<TChannel>(Binding, EndpointAddress)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse unter Verwendung der angegebenen Bindung und Endpunktadresse.

ClientBase<TChannel>(InstanceContext)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse, indem callbackInstance als Rückrufobjekt in einer Duplexkonversation verwendet wird.

ClientBase<TChannel>(InstanceContext, Binding, EndpointAddress)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse.

ClientBase<TChannel>(InstanceContext, ServiceEndpoint)

Initialisiert mit den angegebenen ClientBase<TChannel>- und InstanceContext-Objekten eine neue Instanz der ServiceEndpoint-Klasse.

ClientBase<TChannel>(InstanceContext, String)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse unter Verwendung des angegebenen Rückrufdiensts und der Endpunktkonfigurationsinformationen.

ClientBase<TChannel>(InstanceContext, String, EndpointAddress)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse.

ClientBase<TChannel>(InstanceContext, String, String)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse.

ClientBase<TChannel>(ServiceEndpoint)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse mit dem angegebenen ServiceEndpoint.

ClientBase<TChannel>(String)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse, indem die in der Anwendungskonfigurationsdatei angegebenen Konfigurationsinformationen von endpointConfigurationName verwendet werden.

ClientBase<TChannel>(String, EndpointAddress)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse unter Verwendung der angegebenen Zieladresse und den Endpunktinformationen.

ClientBase<TChannel>(String, String)

Initialisiert eine neue Instanz der ClientBase<TChannel>-Klasse.

Eigenschaften

CacheSetting

Ruft die Cacheeinstellungen ab oder legt sie fest.

Channel

Ruft den inneren Kanal ab, der verwendet wird, um Meldungen an unterschiedlich konfigurierte Endpunkte zu senden.

ChannelFactory

Ruft das zugrunde liegende ChannelFactory<TChannel>-Objekt ab.

ClientCredentials

Ruft die Clientanmeldeinformationen ab, die verwendet werden, um einen Vorgang aufzurufen.

Endpoint

Ruft den Zielendpunkt für den Dienst ab, mit dem der WCF-Client eine Verbindung herstellen kann.

InnerChannel

Ruft die zugrunde liegende IClientChannel-Implementierung ab.

State

Ruft den aktuellen Zustand des ClientBase<TChannel>-Objekts ab.

Methoden

Abort()

Bewirkt, dass das ClientBase<TChannel>-Objekt von seinem aktuellen Zustand in den geschlossenen Zustand übergeht.

Close()

Bewirkt, dass ein ClientBase<TChannel>-Objekt von seinem aktuellen Zustand in den geschlossenen Zustand wechselt.

CreateChannel()

Gibt einen neuen Kanal an den Dienst zurück.

DisplayInitializationUI()

Weist den inneren Kanal an, eine Benutzeroberfläche anzuzeigen, wenn eine solche zum Initialisieren des Kanals vor der Verwendung erforderlich ist.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetDefaultValueForInitialization<T>()

Repliziert das Verhalten des Standardschlüsselworts in C#.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
InvokeAsync(ClientBase<TChannel>.BeginOperationDelegate, Object[], ClientBase<TChannel>.EndOperationDelegate, SendOrPostCallback, Object)

Bietet Unterstützung für das Implementieren des ereignisbasierten asynchronen Musters. Weitere Informationen zu diesem Muster finden Sie unter Übersicht über ereignisbasierte asynchrone Muster.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Open()

Bewirkt, dass das ClientBase<TChannel>-Objekt vom Erstellt-Zustand in den Geöffnet-Zustand übergeht.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

ICommunicationObject.BeginClose(AsyncCallback, Object)

Beginnt einen asynchronen Vorgang, um ClientBase<TChannel> zu schließen.

ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ClientBase<TChannel> mit einem angegebenen Timeout zu schließen.

ICommunicationObject.BeginOpen(AsyncCallback, Object)

Startet einen asynchronen Vorgang, um das ClientBase<TChannel>-Objekt zu öffnen.

ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, um das ClientBase<TChannel>-Objekt innerhalb eines angegebenen Zeitintervalls zu öffnen.

ICommunicationObject.Close()

Bewirkt, dass ein Kommunikationsobjekt vom aktuellen Zustand in den geschlossenen Zustand übergeht.

ICommunicationObject.Close(TimeSpan)

Bewirkt, dass ein ClientBase<TChannel>-Objekt von seinem aktuellen Zustand in den geschlossenen Zustand wechselt.

ICommunicationObject.Closed

Der Ereignishandler, der aufgerufen wird, wenn das ClientBase<TChannel>-Objekt von seinem aktuellen Zustand in den geschlossenen Zustand übergegangen ist.

ICommunicationObject.Closing

Der Ereignishandler, der aufgerufen wird, wenn das ClientBase<TChannel>-Objekt von seinem aktuellen Zustand in den geschlossenen Zustand übergeht.

ICommunicationObject.EndClose(IAsyncResult)

Beendet einen asynchronen Vorgang, um das ClientBase<TChannel>-Objekt zu schließen.

ICommunicationObject.EndOpen(IAsyncResult)

Beendet einen asynchronen Vorgang, um das ClientBase<TChannel>-Objekt zu öffnen.

ICommunicationObject.Faulted

Der Ereignishandler, der aufgerufen wird, wenn beim Ausführen eines Vorgangs auf dem ClientBase<TChannel>-Objekt ein Fehler auftritt.

ICommunicationObject.Open()

Bewirkt den Übergang eines Kommunikationsobjekts aus dem Erstellt-Zustand in den Geöffnet-Zustand.

ICommunicationObject.Open(TimeSpan)

Bewirkt, dass das ClientBase<TChannel>-Objekt innerhalb eines angegebenen Zeitraums vom Erstellt-Zustand in den Geöffnet-Zustand übergeht.

ICommunicationObject.Opened

Der Ereignishandler, der aufgerufen wird, wenn das ClientBase<TChannel>-Objekt vom Erstellt-Zustand in den Geöffnet-Zustand übergeht.

ICommunicationObject.Opening

Der Ereignishandler, der aufgerufen wird, wenn das ClientBase<TChannel>-Objekt vom Erstellt-Zustand in den Geöffnet-Zustand übergeht.

IDisposable.Dispose()

Eine explizite Implementierung der Dispose()-Methode.

Gilt für