Прочитать на английском

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


ClientBase<TChannel> Класс

Определение

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

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

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

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);
    }
}

Комментарии

Расширьте класс 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)

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

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

Продукт Версии
.NET Core 1.0, Core 1.1, 8
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
UWP 10.0