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


ChannelBase Класс

Определение

Предоставляет базовую реализацию пользовательских каналов.

public ref class ChannelBase abstract : System::ServiceModel::Channels::CommunicationObject, System::ServiceModel::Channels::IChannel, System::ServiceModel::IDefaultCommunicationTimeouts
public abstract class ChannelBase : System.ServiceModel.Channels.CommunicationObject, System.ServiceModel.Channels.IChannel, System.ServiceModel.IDefaultCommunicationTimeouts
type ChannelBase = class
    inherit CommunicationObject
    interface IChannel
    interface ICommunicationObject
    interface IDefaultCommunicationTimeouts
Public MustInherit Class ChannelBase
Inherits CommunicationObject
Implements IChannel, IDefaultCommunicationTimeouts
Наследование
Реализации

Комментарии

Важно!

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

Класс ChannelBase предоставляет реализацию абстрактного базового класса для интерфейса IChannel. Также требуется, чтобы каждый канал был связан с диспетчером каналов. Обратите внимание, что единственный конструктор, позволяющий создавать экземпляры класса ChannelBase, требует входной параметр channelManager.

Изменениями состояния можно управлять с помощью наследования от реализации CommunicationObject конечного автомата.

Объект ChannelBase получает значения времени ожидания связи по умолчанию для операций открытия, закрытия, отправки и получения от связанного с ним объекта ChannelManagerBase.

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

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

При каждой реализации канала не забудьте переопределить метод GetProperty. GetProperty — это отличный способ передачи информации по стеку каналов, не зная, какие каналы находятся под вами или какие каналы выше могут выполнять запросы. Определите интерфейсы, позволяющие выполнять запрос доступной информации. Если аргумент типа для метода GetProperty не распознается, следует делегировать объект каналу уровнем ниже в стеке или вернуть значение null, если создается новый транспортный канал в нижней части стека.

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

ChannelBase(ChannelManagerBase)

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

Свойства

DefaultCloseTimeout

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

DefaultOpenTimeout

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

DefaultReceiveTimeout

Возвращает интервал времени по умолчанию, выделенный для успешного завершения операции получения.

DefaultSendTimeout

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

IsDisposed

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

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

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

State

Возвращает значение, которое указывает на текущее состояние объекта связи.

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

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

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

Методы

Abort()

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

(Унаследовано от CommunicationObject)
BeginClose(AsyncCallback, Object)

Начинает асинхронную операцию закрытия объекта связи.

(Унаследовано от CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

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

(Унаследовано от CommunicationObject)
BeginOpen(AsyncCallback, Object)

Начинает асинхронную операцию открытия объекта связи.

(Унаследовано от CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Начинает асинхронную операцию открытия объекта связи в течение заданного интервала времени.

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

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

(Унаследовано от CommunicationObject)
Close(TimeSpan)

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

(Унаследовано от CommunicationObject)
EndClose(IAsyncResult)

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

(Унаследовано от CommunicationObject)
EndOpen(IAsyncResult)

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

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

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

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

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

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

Возвращает тип объекта связи.

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

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

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

Возвращает запрошенный типизированный объект, если он имеется, из соответствующего уровня стека каналов.

GetType()

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

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

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

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

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

(Унаследовано от CommunicationObject)
OnBeginClose(TimeSpan, AsyncCallback, Object)

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

(Унаследовано от CommunicationObject)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Вставляет операцию обработки объекта связи после перехода объекта в состояние открытия в связи с вызовом асинхронной операции открытия.

(Унаследовано от CommunicationObject)
OnClose(TimeSpan)

Вставляет операцию обработки объекта связи после перехода объекта в состояние закрытия в связи с вызовом синхронной операции закрытия.

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

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

OnClosing()

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

(Унаследовано от CommunicationObject)
OnEndClose(IAsyncResult)

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

(Унаследовано от CommunicationObject)
OnEndOpen(IAsyncResult)

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

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

Вставляет операцию обработки объекта связи после перехода объекта в состояние Faulted в связи с вызовом синхронной операции ошибки.

(Унаследовано от CommunicationObject)
OnOpen(TimeSpan)

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

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

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

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

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

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

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

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

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

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

Вызывает исключение, если объект связи удален.

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

Создает исключение, если для свойства объекта связи State не установлено значение Created.

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

Создает исключение, если объект связи не находится в состоянии Opened.

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

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

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

События

Closed

Происходит при переходе объекта связи в состояние Closed.

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

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

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

Происходит при переходе объекта связи в состояние Faulted.

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

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

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

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

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

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

IDefaultCommunicationTimeouts.CloseTimeout

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

IDefaultCommunicationTimeouts.OpenTimeout

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

IDefaultCommunicationTimeouts.ReceiveTimeout

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

IDefaultCommunicationTimeouts.SendTimeout

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

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