ClientBase<TChannel> Classe

Definição

Fornece a implementação base usada para criar objetos cliente do Windows Communication Foundation (WCF) que podem chamar serviços.

generic <typename TChannel>
 where TChannel : classpublic ref class ClientBase abstract : System::ServiceModel::ICommunicationObject
generic <typename TChannel>
 where TChannel : classpublic ref class ClientBase abstract : IAsyncDisposable, IDisposable, 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> : IAsyncDisposable, IDisposable, 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 IDisposable
    interface ICommunicationObject
    interface IAsyncDisposable
type ClientBase<'Channel (requires 'Channel : null)> = class
    interface ICommunicationObject
    interface IDisposable
type ClientBase<'Channel (requires 'Channel : null)> = class
    interface IDisposable
    interface ICommunicationObject
Public MustInherit Class ClientBase(Of TChannel)
Implements ICommunicationObject
Public MustInherit Class ClientBase(Of TChannel)
Implements IAsyncDisposable, ICommunicationObject, IDisposable
Public MustInherit Class ClientBase(Of TChannel)
Implements ICommunicationObject, IDisposable

Parâmetros de Tipo Genérico

TChannel

O canal a ser usado para se ligar ao serviço.

Herança
ClientBase<TChannel>
Derivado
Implementações

Exemplos

O exemplo de código seguinte mostra como a Ferramenta Utilitária de Metadados do Modelo de Serviço (Svcutil.exe) estende a ClientBase<TChannel> classe para criar uma classe cliente WCF.

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

Observações

Estenda a ClientBase<TChannel> classe para criar um objeto cliente WCF personalizado que possa ser usado para se ligar a um serviço. Normalmente, a classe base de cliente WCF é estendida por uma ferramenta como a ServiceModel Metadata Utility Tool (Svcutil.exe) em seu nome. Para um exemplo, veja a secção Exemplo.

A ClientBase<TChannel> classe pode ser usada rápida e facilmente por programadores que preferem objetos ao uso das interfaces e da System.ServiceModel.ChannelFactory<TChannel> classe. Em todos os casos, esta classe envolve ou expõe os métodos e funcionalidades da System.ServiceModel.ChannelFactory<TChannel> classe e da System.ServiceModel.IClientChannel interface.

Tal como ao usar a System.ServiceModel.ServiceHost classe, pode criar a classe e modificar o endpoint, a fábrica de canal ou a informação de segurança antes de fazer qualquer chamada ou chamar Open. Para mais informações, consulte Visão Geral do Cliente WCF e Acesso a Serviços Usando um Cliente WCF.

Nota especial para utilizadores de C++ gerido derivados desta classe:

  • Coloca o teu código de limpeza em (On)(Begin)Close (e/ou OnAbort), não num destrutor.
  • Evite destruidores: eles fazem com que o compilador gere IDisposableautomaticamente .
  • Evite membros que não sejam de referência: podem fazer com que o compilador gere IDisposableautomaticamente .
  • Evite finalizadores; mas se incluir um, deve suprimir o aviso de compilação e a chamada SuppressFinalize(Object) e o próprio finalizador de (On)(Begin)Close (e/ou OnAbort) para emular o que teria sido o comportamento gerado IDisposable automaticamente.

Construtores

Name Description
ClientBase<TChannel>()

Inicializa uma nova instância da ClientBase<TChannel> classe usando o endpoint alvo predefinido a partir do ficheiro de configuração da aplicação.

ClientBase<TChannel>(Binding, EndpointAddress)

Inicializa uma nova instância da ClientBase<TChannel> classe usando o endereço de ligação e destino especificados.

ClientBase<TChannel>(InstanceContext, Binding, EndpointAddress)

Inicializa uma nova instância da ClientBase<TChannel> classe.

ClientBase<TChannel>(InstanceContext, ServiceEndpoint)

Inicializa uma nova instância da ClientBase<TChannel> classe usando os objetos e InstanceContext especificadosServiceEndpoint.

ClientBase<TChannel>(InstanceContext, String, EndpointAddress)

Inicializa uma nova instância da ClientBase<TChannel> classe.

ClientBase<TChannel>(InstanceContext, String, String)

Inicializa uma nova instância da ClientBase<TChannel> classe.

ClientBase<TChannel>(InstanceContext, String)

Inicializa uma nova instância da ClientBase<TChannel> classe usando o serviço de callback especificado e a informação de configuração do endpoint.

ClientBase<TChannel>(InstanceContext)

Inicializa uma nova instância da ClientBase<TChannel> classe usando o callbackInstance como objeto de chamada de retorno numa conversa duplex.

ClientBase<TChannel>(ServiceEndpoint)

Inicializa uma nova instância da ClientBase<TChannel> classe usando o especificado ServiceEndpoint.

ClientBase<TChannel>(String, EndpointAddress)

Inicializa uma nova instância da ClientBase<TChannel> classe usando o endereço de destino especificado e a informação do endpoint.

ClientBase<TChannel>(String, String)

Inicializa uma nova instância da ClientBase<TChannel> classe.

ClientBase<TChannel>(String)

Inicializa uma nova instância da ClientBase<TChannel> classe usando a informação de configuração especificada no ficheiro de configuração da aplicação por endpointConfigurationName.

Propriedades

Name Description
CacheSetting

Obtém ou define a definição de cache.

Channel

Obtém o canal interno usado para enviar mensagens para endpoints de serviço configurados de várias formas.

ChannelFactory

Obtém o objeto subjacente ChannelFactory<TChannel> .

ClientCredentials

Obtém as credenciais do cliente usadas para chamar uma operação.

Endpoint

Obtém o endpoint alvo do serviço ao qual o cliente WCF pode ligar-se.

InnerChannel

Obtém a implementação subjacente IClientChannel .

State

Obtém o estado atual do ClientBase<TChannel> objeto.

Métodos

Name Description
Abort()

Faz com que o ClientBase<TChannel> objeto faça a transição imediata do seu estado atual para o estado fechado.

Close()

Faz com que o ClientBase<TChannel> objeto faça a transição do seu estado atual para o estado fechado.

CloseAsync()

Fornece a implementação base usada para criar objetos cliente do Windows Communication Foundation (WCF) que podem chamar serviços.

CreateChannel()

Devolve um novo canal ao serviço.

DisplayInitializationUI()

Instrui o canal interno a mostrar uma interface de utilizador caso seja necessário inicializar o canal antes de o utilizar.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetDefaultValueForInitialization<T>()

Replica o comportamento da palavra-chave padrão em C#.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InvokeAsync(ClientBase<TChannel>.BeginOperationDelegate, Object[], ClientBase<TChannel>.EndOperationDelegate, SendOrPostCallback, Object)

Fornece suporte para implementar o padrão assíncrono baseado em eventos. Para mais informações sobre este padrão, consulte Visão Geral do Padrão Assíncrono Baseado em Eventos.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Open()

Faz com que o ClientBase<TChannel> objeto faça a transição do estado criado para o estado aberto.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
IAsyncDisposable.DisposeAsync()

Fornece a implementação base usada para criar objetos cliente do Windows Communication Foundation (WCF) que podem chamar serviços.

ICommunicationObject.BeginClose(AsyncCallback, Object)

Inicia uma operação assíncrona para fechar o ClientBase<TChannel>.

ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona para fechar o ClientBase<TChannel> com um tempo de espera especificado.

ICommunicationObject.BeginOpen(AsyncCallback, Object)

Inicia uma operação assíncrona para abrir o ClientBase<TChannel> objeto.

ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona para abrir o ClientBase<TChannel> objeto dentro de um intervalo de tempo especificado.

ICommunicationObject.Close()

Faz com que um objeto de comunicação faça a transição do seu estado atual para o estado fechado.

ICommunicationObject.Close(TimeSpan)

Faz com que o ClientBase<TChannel> objeto faça a transição do seu estado atual para o estado fechado.

ICommunicationObject.Closed

O gestor de eventos que é invocado quando o ClientBase<TChannel> objeto transitou do seu estado atual para o estado fechado.

ICommunicationObject.Closing

O gestor de eventos que é invocado quando o ClientBase<TChannel> objeto transita do seu estado atual para o estado fechado.

ICommunicationObject.EndClose(IAsyncResult)

Completa uma operação assíncrona para fechar o ClientBase<TChannel> objeto.

ICommunicationObject.EndOpen(IAsyncResult)

Completa uma operação assíncrona para abrir o ClientBase<TChannel> objeto.

ICommunicationObject.Faulted

O gestor de eventos que é invocado quando ocorre uma falha durante a realização de uma operação no ClientBase<TChannel> objeto.

ICommunicationObject.Open()

Faz com que um objeto de comunicação faça a transição do estado criado para o estado aberto.

ICommunicationObject.Open(TimeSpan)

Faz com que o ClientBase<TChannel> objeto faça a transição do estado criado para o estado aberto dentro de um intervalo de tempo especificado.

ICommunicationObject.Opened

O gestor de eventos que é invocado quando o ClientBase<TChannel> objeto transita do estado criado para o estado aberto.

ICommunicationObject.Opening

O gestor de eventos que é invocado quando o ClientBase<TChannel> objeto transita do estado criado para o estado aberto.

IDisposable.Dispose()

Implementação explícita do Dispose() método.

Aplica-se a