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 |
Возвращает промежуток времени, по истечении которого заканчивается время ожидания метода отправки, вызванного объектом связи. |