ClientBase<TChannel> Klasse

Definition

Stellt die Basisimplementierung bereit, die zum Erstellen von Windows Communication Foundation (WCF)-Clientobjekten verwendet wird, die Dienste aufrufen können.

generic <typename TChannel>
 where TChannel : classpublic ref class ClientBase abstract : System::ServiceModel::ICommunicationObject
generic <typename TChannel>
 where TChannel : classpublic ref class ClientBase abstract : IDisposable, System::ServiceModel::ICommunicationObject
public abstract class ClientBase<TChannel> : System.ServiceModel.ICommunicationObject where TChannel : class
public abstract class ClientBase<TChannel> : IDisposable, System.ServiceModel.ICommunicationObject where TChannel : class
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
Public MustInherit Class ClientBase(Of TChannel)
Implements ICommunicationObject, IDisposable

Typparameter

TChannel

Der Kanal, der zum Herstellen einer Verbindung mit dem Dienst verwendet werden soll.

Vererbung
ClientBase<TChannel>
Abgeleitet
Implementiert

Beispiele

Das folgende Codebeispiel zeigt, 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 einfach von Entwicklern verwendet werden, die Objekte für die Verwendung der Schnittstellen und der System.ServiceModel.ChannelFactory<TChannel> Klasse bevorzugen. In allen Fällen umschließt oder macht diese Klasse die Methoden und Funktionen der System.ServiceModel.ChannelFactory<TChannel> Klasse und der System.ServiceModel.IClientChannel Schnittstelle verfügbar.

Wie bei verwendung der System.ServiceModel.ServiceHost Klasse können Sie die Klasse erstellen und die Endpunkt-, Kanalfactory- oder Sicherheitsinformationen ändern, bevor Sie Anrufe oder Anrufe tätigen Open. Weitere Informationen finden Sie unter WCF Client Overview and Accessing Services Using a WCF Client.

Besondere Notiz für verwaltete C++-Benutzer, die von dieser Klasse abgeleitet werden:

  • Setzen Sie den Bereinigungscode in (On)(Begin)Close (und/oder OnAbort) und nicht in einem Destruktor.
  • Vermeiden Sie Destruktoren: Sie verursachen, dass der Compiler automatisch generiert IDisposable.
  • Vermeiden Sie Nichtverweismitglieder: Sie können dazu führen, dass der Compiler automatisch generiert IDisposablewird.
  • Vermeiden Sie Finalisierer; Wenn Sie jedoch eine einschließen, sollten Sie die Buildwarnung und den Aufruf und SuppressFinalize(Object) den Finalizer selbst von (On)(Begin)Close (und/oder OnAbort) unterdrücken, um zu emulieren, was das automatisch generierte IDisposable Verhalten wäre.

Konstruktoren

Name Beschreibung
ClientBase<TChannel>()

Initialisiert eine neue Instanz der ClientBase<TChannel> Klasse mithilfe des Standardzielendpunkts aus der Anwendungskonfigurationsdatei.

ClientBase<TChannel>(Binding, EndpointAddress)

Initialisiert eine neue Instanz der Klasse mithilfe der ClientBase<TChannel> angegebenen Bindungs- und Zieladresse.

ClientBase<TChannel>(InstanceContext, Binding, EndpointAddress)

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

ClientBase<TChannel>(InstanceContext, ServiceEndpoint)

Initialisiert eine neue Instanz der Klasse mithilfe der ClientBase<TChannel> angegebenen InstanceContext objekte ServiceEndpoint .

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>(InstanceContext, String)

Initialisiert eine neue Instanz der Klasse mithilfe der ClientBase<TChannel> angegebenen Rückrufdienst- und Endpunktkonfigurationsinformationen.

ClientBase<TChannel>(InstanceContext)

Initialisiert eine neue Instanz der ClientBase<TChannel> Klasse, die callbackInstance das Rückrufobjekt in einer Duplexunterhaltung verwendet.

ClientBase<TChannel>(ServiceEndpoint)

Initialisiert eine neue Instanz der Klasse mithilfe des ClientBase<TChannel> angegebenen ServiceEndpoint.

ClientBase<TChannel>(String, EndpointAddress)

Initialisiert eine neue Instanz der Klasse mithilfe der ClientBase<TChannel> angegebenen Zieladressen- und Endpunktinformationen.

ClientBase<TChannel>(String, String)

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

ClientBase<TChannel>(String)

Initialisiert eine neue Instanz der ClientBase<TChannel> Klasse mithilfe der Konfigurationsinformationen, die in der Anwendungskonfigurationsdatei angegeben sind.endpointConfigurationName

Eigenschaften

Name Beschreibung
CacheSetting

Ruft die Cacheeinstellung ab oder legt sie fest.

Channel

Ruft den inneren Kanal ab, der zum Senden von Nachrichten an verschiedene konfigurierte Dienstendpunkte verwendet wird.

ChannelFactory

Ruft das zugrunde liegende ChannelFactory<TChannel> Objekt ab.

ClientCredentials

Ruft die Clientanmeldeinformationen ab, die zum Aufrufen eines Vorgangs verwendet werden.

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 Status des ClientBase<TChannel> Objekts ab.

Methoden

Name Beschreibung
Abort()

Bewirkt, dass das ClientBase<TChannel> Objekt sofort vom aktuellen Zustand in den geschlossenen Zustand wechselt.

Close()

Bewirkt, dass das ClientBase<TChannel> Objekt vom 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 ein Kanal vor der Verwendung initialisiert werden muss.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetDefaultValueForInitialization<T>()

Repliziert das Verhalten des Standardschlüsselworts in C#.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

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

Bietet Unterstützung für die Implementierung des ereignisbasierten asynchronen Musters. Weitere Informationen zu diesem Muster finden Sie unter "Event-based Asynchronous Pattern Overview".

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
Open()

Bewirkt, dass das ClientBase<TChannel> Objekt vom erstellten Zustand in den geöffneten Zustand wechselt.

ToString()

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

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
ICommunicationObject.BeginClose(AsyncCallback, Object)

Startet einen asynchronen Vorgang zum Schließen der ClientBase<TChannel>.

ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang zum Schließen des ClientBase<TChannel> Vorgangs mit einem angegebenen Timeout.

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

ICommunicationObject.Close(TimeSpan)

Bewirkt, dass das ClientBase<TChannel> Objekt vom aktuellen Zustand in den geschlossenen Zustand wechselt.

ICommunicationObject.Closed

Der Ereignishandler, der aufgerufen wird, wenn das ClientBase<TChannel> Objekt vom aktuellen Zustand zum geschlossenen Zustand gewechselt ist.

ICommunicationObject.Closing

Der Ereignishandler, der aufgerufen wird, wenn das ClientBase<TChannel> Objekt vom aktuellen Zustand zum geschlossenen Zustand wechselt.

ICommunicationObject.EndClose(IAsyncResult)

Schließt einen asynchronen Vorgang ab, um das ClientBase<TChannel> Objekt zu schließen.

ICommunicationObject.EndOpen(IAsyncResult)

Schließt einen asynchronen Vorgang ab, um das ClientBase<TChannel> Objekt zu öffnen.

ICommunicationObject.Faulted

Der Ereignishandler, der beim Ausführen eines Vorgangs für das ClientBase<TChannel> Objekt aufgerufen wird, wenn ein Fehler auftritt.

ICommunicationObject.Open()

Bewirkt, dass ein Kommunikationsobjekt vom erstellten Zustand in den geöffneten Zustand wechselt.

ICommunicationObject.Open(TimeSpan)

Bewirkt, dass das ClientBase<TChannel> Objekt innerhalb eines bestimmten Zeitintervalls vom erstellungszustand in den geöffneten Zustand wechselt.

ICommunicationObject.Opened

Der Ereignishandler, der aufgerufen wird, wenn das ClientBase<TChannel> Objekt vom erstellungszustand zum geöffneten Zustand wechselt.

ICommunicationObject.Opening

Der Ereignishandler, der aufgerufen wird, wenn das ClientBase<TChannel> Objekt vom erstellungszustand zum geöffneten Zustand wechselt.

IDisposable.Dispose()

Explizite Implementierung der Dispose() Methode.

Gilt für: