ChannelBase クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
カスタム チャネルの基本実装を提供します。
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
- 継承
- 実装
注釈
Important
信頼されていないデータを使用してこのクラスからメソッドを呼び出すことは、セキュリティ上のリスクです。 このクラスのメソッドは、信頼できるデータでのみ呼び出します。 詳細については、「すべての入力を検証する」を参照してください。
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() |
通信オブジェクトを現在の状態から閉じた状態に遷移させます。 (継承元 CommunicationObject) |
| Close(TimeSpan) |
指定した時間内に、通信オブジェクトを現在の状態から閉じた状態に遷移させます。 (継承元 CommunicationObject) |
| EndClose(IAsyncResult) |
通信オブジェクトを閉じる非同期操作を完了します。 (継承元 CommunicationObject) |
| EndOpen(IAsyncResult) |
通信オブジェクトを開く非同期操作を完了します。 (継承元 CommunicationObject) |
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| Fault() |
通信オブジェクトを現在の状態から障害状態に遷移させます。 (継承元 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() |
同期障害操作の呼び出しにより、通信オブジェクトが障害状態に遷移した後に、処理を挿入します。 (継承元 CommunicationObject) |
| OnOpen(TimeSpan) |
指定した時間内に完了する必要がある開始状態に遷移した後、通信オブジェクトに処理を挿入します。 (継承元 CommunicationObject) |
| OnOpened() |
通信オブジェクトのオープン状態への遷移中に呼び出されます。 (継承元 CommunicationObject) |
| OnOpening() |
通信オブジェクトの開始状態への遷移中に呼び出されます。 (継承元 CommunicationObject) |
| Open() |
通信オブジェクトが作成された状態から開かれた状態に遷移します。 (継承元 CommunicationObject) |
| Open(TimeSpan) |
指定した時間内に、通信オブジェクトが作成された状態から開かれた状態に遷移します。 (継承元 CommunicationObject) |
| ThrowIfDisposed() |
通信オブジェクトが破棄された場合に例外をスローします。 (継承元 CommunicationObject) |
| ThrowIfDisposedOrImmutable() |
State プロパティがCreated状態に設定されていない通信オブジェクトの場合は、例外をスローします。 (継承元 CommunicationObject) |
| ThrowIfDisposedOrNotOpen() |
通信オブジェクトが Opened 状態でない場合は、例外をスローします。 (継承元 CommunicationObject) |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
イベント
| 名前 | 説明 |
|---|---|
| Closed |
通信オブジェクトが閉じた状態に遷移したときに発生します。 (継承元 CommunicationObject) |
| Closing |
通信オブジェクトが終了状態に遷移したときに発生します。 (継承元 CommunicationObject) |
| Faulted |
通信オブジェクトが障害状態に遷移したときに発生します。 (継承元 CommunicationObject) |
| Opened |
通信オブジェクトが開かれた状態に遷移したときに発生します。 (継承元 CommunicationObject) |
| Opening |
通信オブジェクトが開始状態に遷移したときに発生します。 (継承元 CommunicationObject) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IDefaultCommunicationTimeouts.CloseTimeout |
通信オブジェクトによって呼び出された close メソッドがタイムアウトするまでの時間間隔を取得します。 |
| IDefaultCommunicationTimeouts.OpenTimeout |
通信オブジェクトによって呼び出された open メソッドがタイムアウトするまでの時間間隔を取得します。 |
| IDefaultCommunicationTimeouts.ReceiveTimeout |
通信オブジェクトによって呼び出された受信メソッドがタイムアウトするまでの時間間隔を取得します。 |
| IDefaultCommunicationTimeouts.SendTimeout |
通信オブジェクトによって呼び出された送信メソッドがタイムアウトするまでの時間間隔を取得します。 |