ClientBase<TChannel> Klass

Definition

Tillhandahåller basimplementeringen som används för att skapa Windows Communication Foundation -klientobjekt (WCF) som kan anropa tjänster.

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

Typparametrar

TChannel

Den kanal som ska användas för att ansluta till tjänsten.

Arv
ClientBase<TChannel>
Härledda
Implementeringar

Exempel

Följande kodexempel visar hur Verktyget för ServiceModel-metadata (Svcutil.exe) utökar ClientBase<TChannel> klassen för att skapa en WCF-klientklass.

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

Kommentarer

ClientBase<TChannel> Utöka klassen för att skapa ett anpassat WCF-klientobjekt som kan användas för att ansluta till en tjänst. Vanligtvis utökas WCF-klientbasklassen av ett verktyg som ServiceModel Metadata Utility Tool (Svcutil.exe) för din räkning. Ett exempel finns i avsnittet Exempel.

Klassen ClientBase<TChannel> kan användas snabbt och enkelt av utvecklare som föredrar objekt framför användningen av gränssnitten System.ServiceModel.ChannelFactory<TChannel> och klassen. I samtliga fall omsluter eller exponerar den här klassen metoderna och funktionerna i System.ServiceModel.ChannelFactory<TChannel> klassen och System.ServiceModel.IClientChannel gränssnittet.

Precis som när du använder System.ServiceModel.ServiceHost klassen kan du skapa klassen och ändra slutpunkten, kanalfabriken eller säkerhetsinformationen innan du gör några anrop eller anropar Open. Mer information finns i Översikt över WCF-klient och åtkomst till tjänster med hjälp av en WCF-klient.

Särskild anmärkning för hanterade C++-användare som härleds från den här klassen:

  • Placera din rensningskod i (På)(Begin)Close (och/eller OnAbort), inte i en destruktor.
  • Undvik destructors: de gör att kompilatorn automatiskt genererar IDisposable.
  • Undvik icke-referensmedlemmar: de kan göra så att kompilatorn automatiskt genererar IDisposable.
  • Undvik finalizers; men om du inkluderar en bör du ignorera byggvarningen och anropet SuppressFinalize(Object) och själva slutföraren från (På)(Begin)Close (och/eller OnAbort) för att emulera vad som skulle ha varit det automatiskt genererade beteendet IDisposable .

Konstruktorer

Name Description
ClientBase<TChannel>()

Initierar en ny instans av ClientBase<TChannel> klassen med standardmålslutpunkten från programkonfigurationsfilen.

ClientBase<TChannel>(Binding, EndpointAddress)

Initierar en ny instans av ClientBase<TChannel> klassen med den angivna bindningen och måladressen.

ClientBase<TChannel>(InstanceContext, Binding, EndpointAddress)

Initierar en ny instans av ClientBase<TChannel> klassen.

ClientBase<TChannel>(InstanceContext, ServiceEndpoint)

Initierar en ny instans av klassen med hjälp av ClientBase<TChannel> angivna InstanceContext objekt och ServiceEndpoint objekt.

ClientBase<TChannel>(InstanceContext, String, EndpointAddress)

Initierar en ny instans av ClientBase<TChannel> klassen.

ClientBase<TChannel>(InstanceContext, String, String)

Initierar en ny instans av ClientBase<TChannel> klassen.

ClientBase<TChannel>(InstanceContext, String)

Initierar en ny instans av klassen med hjälp av ClientBase<TChannel> den angivna återanropstjänsten och konfigurationsinformationen för slutpunkten.

ClientBase<TChannel>(InstanceContext)

Initierar en ny instans av ClientBase<TChannel> klassen med som callbackInstance motringningsobjekt i en duplex-konversation.

ClientBase<TChannel>(ServiceEndpoint)

Initierar en ny instans av ClientBase<TChannel> klassen med den angivna ServiceEndpoint.

ClientBase<TChannel>(String, EndpointAddress)

Initierar en ny instans av ClientBase<TChannel> klassen med den angivna måladressen och slutpunktsinformationen.

ClientBase<TChannel>(String, String)

Initierar en ny instans av ClientBase<TChannel> klassen.

ClientBase<TChannel>(String)

Initierar en ny instans av klassen med hjälp av ClientBase<TChannel> konfigurationsinformationen som anges i programkonfigurationsfilen av endpointConfigurationName.

Egenskaper

Name Description
CacheSetting

Hämtar eller anger cacheinställningen.

Channel

Hämtar den inre kanalen som används för att skicka meddelanden till olika konfigurerade tjänstslutpunkter.

ChannelFactory

Hämtar det underliggande ChannelFactory<TChannel> objektet.

ClientCredentials

Hämtar klientens autentiseringsuppgifter som används för att anropa en åtgärd.

Endpoint

Hämtar målslutpunkten för tjänsten som WCF-klienten kan ansluta till.

InnerChannel

Hämtar den underliggande IClientChannel implementeringen.

State

Hämtar objektets ClientBase<TChannel> aktuella tillstånd.

Metoder

Name Description
Abort()

Gör att objektet ClientBase<TChannel> övergår omedelbart från dess aktuella tillstånd till det stängda tillståndet.

Close()

Gör att objektet ClientBase<TChannel> övergår från dess aktuella tillstånd till det stängda tillståndet.

CreateChannel()

Returnerar en ny kanal till tjänsten.

DisplayInitializationUI()

Instruerar den inre kanalen att visa ett användargränssnitt om det krävs för att initiera kanalen innan den används.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetDefaultValueForInitialization<T>()

Replikerar beteendet för standardnyckelordet i C#.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
InvokeAsync(ClientBase<TChannel>.BeginOperationDelegate, Object[], ClientBase<TChannel>.EndOperationDelegate, SendOrPostCallback, Object)

Ger stöd för att implementera det händelsebaserade asynkrona mönstret. Mer information om det här mönstret finns i Händelsebaserad asynkron mönsteröversikt.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Open()

ClientBase<TChannel> Gör att objektet övergår från det skapade tillståndet till det öppnade tillståndet.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
ICommunicationObject.BeginClose(AsyncCallback, Object)

Påbörjar en asynkron åtgärd för att stänga ClientBase<TChannel>.

ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object)

Påbörjar en asynkron åtgärd för att stänga ClientBase<TChannel> med en angiven tidsgräns.

ICommunicationObject.BeginOpen(AsyncCallback, Object)

Påbörjar en asynkron åtgärd för att öppna ClientBase<TChannel> objektet.

ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object)

Påbörjar en asynkron åtgärd för att öppna ClientBase<TChannel> objektet inom ett angivet tidsintervall.

ICommunicationObject.Close()

Gör att ett kommunikationsobjekt övergår från dess aktuella tillstånd till det stängda tillståndet.

ICommunicationObject.Close(TimeSpan)

Gör att objektet ClientBase<TChannel> övergår från dess aktuella tillstånd till det stängda tillståndet.

ICommunicationObject.Closed

Händelsehanteraren som anropas när ClientBase<TChannel> objektet har övergått från dess aktuella tillstånd till det stängda tillståndet.

ICommunicationObject.Closing

Händelsehanteraren som anropas när objektet ClientBase<TChannel> övergår från dess aktuella tillstånd till det stängda tillståndet.

ICommunicationObject.EndClose(IAsyncResult)

Slutför en asynkron åtgärd för att stänga objektet ClientBase<TChannel> .

ICommunicationObject.EndOpen(IAsyncResult)

Slutför en asynkron åtgärd för att öppna ClientBase<TChannel> objektet.

ICommunicationObject.Faulted

Händelsehanteraren som anropas när ett fel inträffar när en åtgärd utförs på ClientBase<TChannel> objektet.

ICommunicationObject.Open()

Gör att ett kommunikationsobjekt övergår från det skapade tillståndet till det öppnade tillståndet.

ICommunicationObject.Open(TimeSpan)

ClientBase<TChannel> Gör att objektet övergår från det skapade tillståndet till det öppnade tillståndet inom ett angivet tidsintervall.

ICommunicationObject.Opened

Händelsehanteraren som anropas när objektet ClientBase<TChannel> övergår från det skapade tillståndet till det öppnade tillståndet.

ICommunicationObject.Opening

Händelsehanteraren som anropas när objektet ClientBase<TChannel> övergår från det skapade tillståndet till det öppnade tillståndet.

IDisposable.Dispose()

Explicit implementering av Dispose() metoden.

Gäller för