Поделиться через


ClientBase<TChannel> Класс

Определение

Предоставляет базовую реализацию, используемую для создания клиентских объектов Windows Communication Foundation (WCF), которые могут вызывать службы.

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

Параметры типа

TChannel

Канал, используемый для подключения к службе.

Наследование
ClientBase<TChannel>
Производный
Реализации

Примеры

В следующем примере кода показано, как средство служебной программы метаданных ServiceModel (Svcutil.exe) расширяет класс ClientBase<TChannel> для создания клиентского класса 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

Комментарии

Расширьте класс ClientBase<TChannel>, чтобы создать пользовательский клиентский объект WCF, который можно использовать для подключения к службе. Как правило, базовый класс WCF расширяется средством, например средством ServiceModel Metadata Utility Tool (Svcutil.exe) от вашего имени. Пример см. в разделе "Пример".

Класс ClientBase<TChannel> можно использовать быстро и легко разработчиками, которые предпочитают объекты использовать интерфейсы и класс System.ServiceModel.ChannelFactory<TChannel>. Во всех случаях этот класс упаковывает или предоставляет методы и функциональные возможности класса System.ServiceModel.ChannelFactory<TChannel> и интерфейса System.ServiceModel.IClientChannel.

Как и при использовании класса System.ServiceModel.ServiceHost, можно создать класс и изменить конечную точку, фабрику каналов или сведения о безопасности перед вызовом или вызовом Open. Дополнительные сведения см. в обзоре клиента WCF и доступа к службам с помощьюклиента WCF.

Специальное примечание для пользователей Managed C++, производных от этого класса:

  • Поместите код очистки в (On)(Begin)Close (and/or OnAbort), а не в деструктор.

  • Избегайте деструкторов: они вызывают автоматическое создание IDisposableкомпилятором.

  • Избегайте элементов без ссылок: они могут вызвать автоматическое создание IDisposableкомпилятора.

  • Избегайте завершения; но если включить его, необходимо отключить предупреждение сборки и вызвать SuppressFinalize(Object) и сам метод завершения из (On)(Begin)Close (and/or OnAbort), чтобы эмулировать то, что было бы автоматически созданным IDisposable поведением.

Конструкторы

ClientBase<TChannel>()

Инициализирует новый экземпляр класса ClientBase<TChannel> с помощью целевой конечной точки по умолчанию из файла конфигурации приложения.

ClientBase<TChannel>(Binding, EndpointAddress)

Инициализирует новый экземпляр класса ClientBase<TChannel> с помощью указанной привязки и целевого адреса.

ClientBase<TChannel>(InstanceContext)

Инициализирует новый экземпляр класса ClientBase<TChannel> с помощью callbackInstance в качестве объекта обратного вызова в дуплексном диалоге.

ClientBase<TChannel>(InstanceContext, Binding, EndpointAddress)

Инициализирует новый экземпляр класса ClientBase<TChannel>.

ClientBase<TChannel>(InstanceContext, ServiceEndpoint)

Инициализирует новый экземпляр класса ClientBase<TChannel> с помощью указанных InstanceContext и объектов ServiceEndpoint.

ClientBase<TChannel>(InstanceContext, String)

Инициализирует новый экземпляр класса ClientBase<TChannel> с помощью указанных сведений о конфигурации службы обратного вызова и конечной точки.

ClientBase<TChannel>(InstanceContext, String, EndpointAddress)

Инициализирует новый экземпляр класса ClientBase<TChannel>.

ClientBase<TChannel>(InstanceContext, String, String)

Инициализирует новый экземпляр класса ClientBase<TChannel>.

ClientBase<TChannel>(ServiceEndpoint)

Инициализирует новый экземпляр класса ClientBase<TChannel> с помощью указанного ServiceEndpoint.

ClientBase<TChannel>(String)

Инициализирует новый экземпляр класса ClientBase<TChannel> с помощью сведений о конфигурации, указанных в файле конфигурации приложения, endpointConfigurationName.

ClientBase<TChannel>(String, EndpointAddress)

Инициализирует новый экземпляр класса ClientBase<TChannel> с помощью указанного целевого адреса и сведений о конечной точке.

ClientBase<TChannel>(String, String)

Инициализирует новый экземпляр класса ClientBase<TChannel>.

Свойства

CacheSetting

Возвращает или задает параметр кэша.

Channel

Возвращает внутренний канал, используемый для отправки сообщений в различные настроенные конечные точки службы.

ChannelFactory

Возвращает базовый объект ChannelFactory<TChannel>.

ClientCredentials

Возвращает учетные данные клиента, используемые для вызова операции.

Endpoint

Возвращает целевую конечную точку для службы, к которой может подключиться клиент WCF.

InnerChannel

Возвращает базовую реализацию IClientChannel.

State

Возвращает текущее состояние объекта ClientBase<TChannel>.

Методы

Abort()

Вызывает переход объекта ClientBase<TChannel> сразу из текущего состояния в закрытое состояние.

Close()

Вызывает переход объекта ClientBase<TChannel> из текущего состояния в закрытое состояние.

CloseAsync()

Предоставляет базовую реализацию, используемую для создания клиентских объектов Windows Communication Foundation (WCF), которые могут вызывать службы.

CreateChannel()

Возвращает новый канал в службу.

DisplayInitializationUI()

Указывает внутреннему каналу отображать пользовательский интерфейс, если он необходим для инициализации канала перед его использованием.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetDefaultValueForInitialization<T>()

Реплицирует поведение ключевого слова по умолчанию в C#.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
InvokeAsync(ClientBase<TChannel>.BeginOperationDelegate, Object[], ClientBase<TChannel>.EndOperationDelegate, SendOrPostCallback, Object)

Предоставляет поддержку реализации асинхронного шаблона на основе событий. Дополнительные сведения об этом шаблоне см. в обзор асинхронных шаблонов на основе событий.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
Open()

Вызывает переход объекта ClientBase<TChannel> из созданного состояния в открытое состояние.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

IAsyncDisposable.DisposeAsync()

Предоставляет базовую реализацию, используемую для создания клиентских объектов Windows Communication Foundation (WCF), которые могут вызывать службы.

ICommunicationObject.BeginClose(AsyncCallback, Object)

Начинает асинхронную операцию закрытия ClientBase<TChannel>.

ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object)

Начинает асинхронную операцию закрытия ClientBase<TChannel> с заданным временем ожидания.

ICommunicationObject.BeginOpen(AsyncCallback, Object)

Начинает асинхронную операцию, чтобы открыть объект ClientBase<TChannel>.

ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object)

Начинает асинхронную операцию, чтобы открыть объект ClientBase<TChannel> в течение указанного интервала времени.

ICommunicationObject.Close()

Вызывает переход объекта связи из текущего состояния в закрытое состояние.

ICommunicationObject.Close(TimeSpan)

Вызывает переход объекта ClientBase<TChannel> из текущего состояния в закрытое состояние.

ICommunicationObject.Closed

Обработчик событий, вызываемый при переходе объекта ClientBase<TChannel> из текущего состояния в закрытое состояние.

ICommunicationObject.Closing

Обработчик событий, вызываемый при переходе объекта ClientBase<TChannel> из текущего состояния в закрытое состояние.

ICommunicationObject.EndClose(IAsyncResult)

Завершает асинхронную операцию, чтобы закрыть объект ClientBase<TChannel>.

ICommunicationObject.EndOpen(IAsyncResult)

Завершает асинхронную операцию, чтобы открыть объект ClientBase<TChannel>.

ICommunicationObject.Faulted

Обработчик событий, вызываемый при возникновении сбоя при выполнении операции в объекте ClientBase<TChannel>.

ICommunicationObject.Open()

Вызывает переход объекта связи из созданного состояния в открытое состояние.

ICommunicationObject.Open(TimeSpan)

Вызывает переход объекта ClientBase<TChannel> из созданного состояния в открытое состояние в течение указанного интервала времени.

ICommunicationObject.Opened

Обработчик событий, вызываемый при переходе объекта ClientBase<TChannel> из созданного состояния в открытое состояние.

ICommunicationObject.Opening

Обработчик событий, вызываемый при переходе объекта ClientBase<TChannel> из созданного состояния в открытое состояние.

IDisposable.Dispose()

Явная реализация метода Dispose().

Методы расширения

ConfigureAwait(IAsyncDisposable, Boolean)

Настраивает способ ожидания задач, возвращаемых из асинхронного удаления.

Применяется к