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

通信オブジェクトを、直ちに現在の状態から Closing 状態に遷移させます。

(継承元 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)

非同期クローズ操作の呼び出しにより通信オブジェクトが Closing 状態に遷移した後で、処理を挿入します。

(継承元 CommunicationObject)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

非同期オープン操作の呼び出しにより通信オブジェクトが Opening 状態に遷移した後で、通信オブジェクトに処理を挿入します。

(継承元 CommunicationObject)
OnClose(TimeSpan)

同期クローズ操作の呼び出しにより通信オブジェクトが Closing 状態に遷移した後で、通信オブジェクトに処理を挿入します。

(継承元 CommunicationObject)
OnCloseAsync(TimeSpan)

カスタム チャネルの基本実装を提供します。

(継承元 CommunicationObject)
OnClosed()

クローズ状態に移行する間に、診断トレースを使用します。

OnClosing()

通信オブジェクトが Closing 状態に遷移しているときに呼び出されます。

(継承元 CommunicationObject)
OnEndClose(IAsyncResult)

通信オブジェクトがクローズしたら非同期操作を完了します。

(継承元 CommunicationObject)
OnEndOpen(IAsyncResult)

通信オブジェクトがオープンしたら、非同期操作を完了します。

(継承元 CommunicationObject)
OnFaulted()

同期フォールト操作の呼び出しにより通信オブジェクトが Faulted 状態に遷移した後で、通信オブジェクトに処理を挿入します。

(継承元 CommunicationObject)
OnOpen(TimeSpan)

指定した時間内に完了する必要がある開始状態に通信オブジェクトが遷移した後で、通信オブジェクトに処理を挿入します。

(継承元 CommunicationObject)
OnOpenAsync(TimeSpan)

カスタム チャネルの基本実装を提供します。

(継承元 CommunicationObject)
OnOpened()

通信オブジェクトが Opened 状態に遷移しているときに呼び出されます。

(継承元 CommunicationObject)
OnOpening()

通信オブジェクトが Opening 状態に遷移しているときに呼び出されます。

(継承元 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

通信オブジェクトが Closing 状態に遷移すると発生します。

(継承元 CommunicationObject)
Faulted

通信オブジェクトが Faulted 状態に遷移すると発生します。

(継承元 CommunicationObject)
Opened

通信オブジェクトが Opened 状態に遷移すると発生します。

(継承元 CommunicationObject)
Opening

通信オブジェクトが Opening 状態に遷移すると発生します。

(継承元 CommunicationObject)

明示的なインターフェイスの実装

IAsyncCommunicationObject.CloseAsync(TimeSpan)

カスタム チャネルの基本実装を提供します。

(継承元 CommunicationObject)
IAsyncCommunicationObject.OpenAsync(TimeSpan)

カスタム チャネルの基本実装を提供します。

(継承元 CommunicationObject)
IDefaultCommunicationTimeouts.CloseTimeout

通信オブジェクトによって呼び出された close メソッドがタイムアウトするまでの時間を取得します。

IDefaultCommunicationTimeouts.OpenTimeout

通信オブジェクトによって呼び出された open メソッドがタイムアウトするまでの時間を取得します。

IDefaultCommunicationTimeouts.ReceiveTimeout

通信オブジェクトによって呼び出された receive メソッドがタイムアウトするまでの時間を取得します。

IDefaultCommunicationTimeouts.SendTimeout

通信オブジェクトによって呼び出された送信メソッドがタイムアウトするまでの時間を取得します。

拡張メソッド

CloseHelperAsync(ICommunicationObject, TimeSpan)

カスタム チャネルの基本実装を提供します。

OpenHelperAsync(ICommunicationObject, TimeSpan)

カスタム チャネルの基本実装を提供します。

GetInternalCloseTimeout(CommunicationObject)

カスタム チャネルの基本実装を提供します。

適用対象