ClientBase<TChannel> Класс

Определение

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

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

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

TChannel

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

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

Примеры

В следующем примере кода показано, как serviceModel Metadata Utility Tool (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 (Svcutil.exe) от вашего имени. См. пример в разделе "Пример".

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

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

Особое примечание для пользователей управляемого кода C++, создающих классы, унаследованные от данного.

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

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

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

  • Избегайте использования методов завершения. При включении этого метода необходимо подавить предупреждение построения и вызвать SuppressFinalize(Object) и сам метод завершения из блока (On)(Begin)Close (или 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> из текущего состояния в состояние Closed.

Close()

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

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> из состояния Created в состояние Opened.

ToString()

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

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

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

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

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

ICommunicationObject.Close(TimeSpan)

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

ICommunicationObject.Closed

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

ICommunicationObject.Closing

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

ICommunicationObject.EndClose(IAsyncResult)

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

ICommunicationObject.EndOpen(IAsyncResult)

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

ICommunicationObject.Faulted

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

ICommunicationObject.Open()

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

ICommunicationObject.Open(TimeSpan)

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

ICommunicationObject.Opened

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

ICommunicationObject.Opening

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

IDisposable.Dispose()

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

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