BaseChannelSinkWithProperties クラス
アセンブリ: mscorlib (mscorlib.dll 内)

<ComVisibleAttribute(True)> _ Public MustInherit Class BaseChannelSinkWithProperties Inherits BaseChannelObjectWithProperties
[ComVisibleAttribute(true)] public abstract class BaseChannelSinkWithProperties : BaseChannelObjectWithProperties
[ComVisibleAttribute(true)] public ref class BaseChannelSinkWithProperties abstract : public BaseChannelObjectWithProperties

チャネル シンクは、そのチャネルを流れている基になるメッセージにアクセスできるようにするプラグイン ポイント、およびリモート オブジェクトにメッセージを送信するためにトランスポート機構が使用するストリームを提供します。チャネル シンクは互いにリンクされてチャネル シンク プロバイダのチェインとなり、すべてのチャネル メッセージはこのシンク チェインを流れた後で、メッセージがシリアル化されて転送されます。
このクラスは、リンク確認要求と継承確認要求をクラス レベルで行います。直前の呼び出し元または派生クラスにインフラストラクチャ アクセス許可がない場合、SecurityException がスローされます。セキュリティ要求の詳細については、「リンク確認要求」および「継承確認要求」を参照してください。
継承時の注意 BaseChannelSinkWithProperties から継承する場合は、Keys プロパティと Item プロパティを実装する必要があります。
<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> _ Friend Class MyClientFormatterChannelSink Inherits BaseChannelSinkWithProperties Implements IClientChannelSink, IMessageSink Private nextClientSink As IClientChannelSink = Nothing Private nextMessageSink As IMessageSink = Nothing Public Sub New(nextSink As IClientChannelSink, nextMsgSink As IMessageSink) MyBase.New() nextClientSink = nextSink nextMessageSink = nextMsgSink End Sub 'New Public Sub ProcessMessage(msg As IMessage, requestHeaders As ITransportHeaders, _ requestStream As Stream, ByRef responseHeaders As ITransportHeaders, _ ByRef responseStream As Stream) _ Implements IClientChannelSink.ProcessMessage nextClientSink.ProcessMessage(msg, requestHeaders, requestStream, _ responseHeaders, responseStream) End Sub 'ProcessMessage Public Sub AsyncProcessRequest(sinkStack As IClientChannelSinkStack, _ msg As IMessage, headers As ITransportHeaders, myStream As Stream) _ Implements IClientChannelSink.AsyncProcessRequest sinkStack.Push(Me, Nothing) nextClientSink.AsyncProcessRequest(sinkStack, msg, headers, myStream) End Sub 'AsyncProcessRequest Public Sub AsyncProcessResponse(sinkStack As IClientResponseChannelSinkStack, _ state As Object, headers As ITransportHeaders, myStream As Stream) _ Implements IClientChannelSink.AsyncProcessResponse sinkStack.AsyncProcessResponse(headers, myStream) End Sub 'AsyncProcessResponse Public Function GetRequestStream(msg As IMessage, headers As ITransportHeaders) As Stream _ Implements IClientChannelSink.GetRequestStream Return Nothing End Function 'GetRequestStream Public ReadOnly Property NextChannelSink() As IClientChannelSink _ Implements IClientChannelSink.NextChannelSink Get Return nextClientSink End Get End Property Public ReadOnly Property NextSink() As IMessageSink _ Implements IMessageSink.NextSink Get Return nextMessageSink End Get End Property Public Overrides ReadOnly Property Properties() As Collections.IDictionary _ Implements IClientChannelSink.Properties Get End Get End Property Public Function AsyncProcessMessage(msg As IMessage, replySink As IMessageSink) As IMessageCtrl _ Implements IMessageSink.AsyncProcessMessage Return Nothing End Function 'AsyncProcessMessage Public Function SyncProcessMessage(msg As IMessage) As IMessage _ Implements IMessageSink.SyncProcessMessage Return nextMessageSink.SyncProcessMessage(msg) End Function 'SyncProcessMessage Default Public Overrides Property Item(key As Object) As Object Get If key Is GetType(MyKey) Then Return Me End If Return Nothing End Get Set Throw New NotSupportedException() End Set End Property Public Overrides ReadOnly Property Keys() As ICollection Get Dim myKeys As New ArrayList(0) myKeys.Add(GetType(MyKey)) Return myKeys End Get End Property End Class 'MyClientFormatterChannelSink Public Class MyKey End Class 'MyKey
[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.Infrastructure)] internal class MyClientFormatterChannelSink : BaseChannelSinkWithProperties, IClientChannelSink, IMessageSink { private IClientChannelSink nextClientSink=null; private IMessageSink nextMessageSink = null; public MyClientFormatterChannelSink(IClientChannelSink nextSink , IMessageSink nextMsgSink) : base() { nextClientSink = nextSink; nextMessageSink = nextMsgSink; } public void ProcessMessage(IMessage msg , ITransportHeaders requestHeaders, Stream requestStream, out ITransportHeaders responseHeaders, out Stream responseStream) { nextClientSink.ProcessMessage(msg, requestHeaders, requestStream, out responseHeaders, out responseStream); } public void AsyncProcessRequest(IClientChannelSinkStack sinkStack, IMessage msg, ITransportHeaders headers, Stream myStream) { sinkStack.Push(this, null); nextClientSink.AsyncProcessRequest(sinkStack,msg,headers,myStream); } public void AsyncProcessResponse(IClientResponseChannelSinkStack sinkStack, Object state, ITransportHeaders headers, Stream myStream) { sinkStack.AsyncProcessResponse(headers, myStream); } public Stream GetRequestStream(IMessage msg,ITransportHeaders headers) { return null; } public IClientChannelSink NextChannelSink { get { return nextClientSink; } } public IMessageSink NextSink { get { return nextMessageSink; } } public IMessageCtrl AsyncProcessMessage(IMessage msg, IMessageSink replySink) { return null; } public IMessage SyncProcessMessage(IMessage msg) { return nextMessageSink.SyncProcessMessage(msg); } public override Object this[Object key] { get { if (key == typeof(MyKey)) return this; return null; } set { throw new NotSupportedException(); } } public override ICollection Keys { get { ArrayList myKeys = new ArrayList(1); myKeys.Add(typeof(MyKey)); return myKeys; } } } public class MyKey { }


System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties
System.Runtime.Remoting.Channels.BaseChannelSinkWithProperties


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


BaseChannelSinkWithProperties コンストラクタ
アセンブリ: mscorlib (mscorlib.dll 内)



<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> _ Friend Class MyClientFormatterChannelSink Inherits BaseChannelSinkWithProperties Implements IClientChannelSink, IMessageSink Private nextClientSink As IClientChannelSink = Nothing Private nextMessageSink As IMessageSink = Nothing Public Sub New(nextSink As IClientChannelSink, nextMsgSink As IMessageSink) MyBase.New() nextClientSink = nextSink nextMessageSink = nextMsgSink End Sub 'New Public Sub ProcessMessage(msg As IMessage, requestHeaders As ITransportHeaders, _ requestStream As Stream, ByRef responseHeaders As ITransportHeaders, _ ByRef responseStream As Stream) _ Implements IClientChannelSink.ProcessMessage nextClientSink.ProcessMessage(msg, requestHeaders, requestStream, _ responseHeaders, responseStream) End Sub 'ProcessMessage Public Sub AsyncProcessRequest(sinkStack As IClientChannelSinkStack, _ msg As IMessage, headers As ITransportHeaders, myStream As Stream) _ Implements IClientChannelSink.AsyncProcessRequest sinkStack.Push(Me, Nothing) nextClientSink.AsyncProcessRequest(sinkStack, msg, headers, myStream) End Sub 'AsyncProcessRequest Public Sub AsyncProcessResponse(sinkStack As IClientResponseChannelSinkStack, _ state As Object, headers As ITransportHeaders, myStream As Stream) _ Implements IClientChannelSink.AsyncProcessResponse sinkStack.AsyncProcessResponse(headers, myStream) End Sub 'AsyncProcessResponse Public Function GetRequestStream(msg As IMessage, headers As ITransportHeaders) As Stream _ Implements IClientChannelSink.GetRequestStream Return Nothing End Function 'GetRequestStream Public ReadOnly Property NextChannelSink() As IClientChannelSink _ Implements IClientChannelSink.NextChannelSink Get Return nextClientSink End Get End Property Public ReadOnly Property NextSink() As IMessageSink _ Implements IMessageSink.NextSink Get Return nextMessageSink End Get End Property Public Overrides ReadOnly Property Properties() As Collections.IDictionary _ Implements IClientChannelSink.Properties Get End Get End Property Public Function AsyncProcessMessage(msg As IMessage, replySink As IMessageSink) As IMessageCtrl _ Implements IMessageSink.AsyncProcessMessage Return Nothing End Function 'AsyncProcessMessage Public Function SyncProcessMessage(msg As IMessage) As IMessage _ Implements IMessageSink.SyncProcessMessage Return nextMessageSink.SyncProcessMessage(msg) End Function 'SyncProcessMessage Default Public Overrides Property Item(key As Object) As Object Get If key Is GetType(MyKey) Then Return Me End If Return Nothing End Get Set Throw New NotSupportedException() End Set End Property Public Overrides ReadOnly Property Keys() As ICollection Get Dim myKeys As New ArrayList(0) myKeys.Add(GetType(MyKey)) Return myKeys End Get End Property End Class 'MyClientFormatterChannelSink Public Class MyKey End Class 'MyKey
[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.Infrastructure)] internal class MyClientFormatterChannelSink : BaseChannelSinkWithProperties, IClientChannelSink, IMessageSink { private IClientChannelSink nextClientSink=null; private IMessageSink nextMessageSink = null; public MyClientFormatterChannelSink(IClientChannelSink nextSink , IMessageSink nextMsgSink) : base() { nextClientSink = nextSink; nextMessageSink = nextMsgSink; } public void ProcessMessage(IMessage msg , ITransportHeaders requestHeaders, Stream requestStream, out ITransportHeaders responseHeaders, out Stream responseStream) { nextClientSink.ProcessMessage(msg, requestHeaders, requestStream, out responseHeaders, out responseStream); } public void AsyncProcessRequest(IClientChannelSinkStack sinkStack, IMessage msg, ITransportHeaders headers, Stream myStream) { sinkStack.Push(this, null); nextClientSink.AsyncProcessRequest(sinkStack,msg,headers,myStream); } public void AsyncProcessResponse(IClientResponseChannelSinkStack sinkStack, Object state, ITransportHeaders headers, Stream myStream) { sinkStack.AsyncProcessResponse(headers, myStream); } public Stream GetRequestStream(IMessage msg,ITransportHeaders headers) { return null; } public IClientChannelSink NextChannelSink { get { return nextClientSink; } } public IMessageSink NextSink { get { return nextMessageSink; } } public IMessageCtrl AsyncProcessMessage(IMessage msg, IMessageSink replySink) { return null; } public IMessage SyncProcessMessage(IMessage msg) { return nextMessageSink.SyncProcessMessage(msg); } public override Object this[Object key] { get { if (key == typeof(MyKey)) return this; return null; } set { throw new NotSupportedException(); } } public override ICollection Keys { get { ArrayList myKeys = new ArrayList(1); myKeys.Add(typeof(MyKey)); return myKeys; } } } public class MyKey { }


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


BaseChannelSinkWithProperties プロパティ

名前 | 説明 | |
---|---|---|
![]() | Count | チャネル オブジェクトに関連付けられているプロパティの数を取得します。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | IsFixedSize | チャネル オブジェクトに入力できるプロパティの数が固定されているかどうかを示す値を取得します。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | IsReadOnly | チャネル オブジェクトにあるプロパティのコレクションが読み取り専用かどうかを示す値を取得します。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | IsSynchronized | チャネル オブジェクトのプロパティのディクショナリが同期されているかどうかを示す値を取得します。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | Item | 派生クラスでオーバーライドされるときに、指定したキーに関連付けられているプロパティを取得または設定します。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | Keys | 派生クラスでオーバーライドされるときに、チャネル オブジェクトのプロパティに関連付けられているキーの ICollection を取得します。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | Properties | チャネル オブジェクトに関連付けられているチャネル プロパティの IDictionary を取得します。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | SyncRoot | BaseChannelObjectWithProperties へのアクセスを同期するために使用するオブジェクトを取得します。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | Values | チャネル オブジェクトに関連付けられているプロパティの値の ICollection を取得します。 ( BaseChannelObjectWithProperties から継承されます。) |

BaseChannelSinkWithProperties メソッド

名前 | 説明 | |
---|---|---|
![]() | Add | NotSupportedException をスローします。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | Clear | NotSupportedException をスローします。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | Contains | 指定したキーに関連付けられているプロパティが、チャネル オブジェクトに格納されているかどうかを示す値を返します。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | CopyTo | NotSupportedException をスローします。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetEnumerator | チャネル オブジェクトに関連付けられているすべてのプロパティを列挙する IDictionaryEnumerator を返します。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | Remove | NotSupportedException をスローします。 ( BaseChannelObjectWithProperties から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

BaseChannelSinkWithProperties メンバ
プロパティにディクショナリ インターフェイスを公開する、チャネル シンクの基本の実装を提供します。
BaseChannelSinkWithProperties データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | Count | チャネル オブジェクトに関連付けられているプロパティの数を取得します。(BaseChannelObjectWithProperties から継承されます。) |
![]() | IsFixedSize | チャネル オブジェクトに入力できるプロパティの数が固定されているかどうかを示す値を取得します。(BaseChannelObjectWithProperties から継承されます。) |
![]() | IsReadOnly | チャネル オブジェクトにあるプロパティのコレクションが読み取り専用かどうかを示す値を取得します。(BaseChannelObjectWithProperties から継承されます。) |
![]() | IsSynchronized | チャネル オブジェクトのプロパティのディクショナリが同期されているかどうかを示す値を取得します。(BaseChannelObjectWithProperties から継承されます。) |
![]() | Item | 派生クラスでオーバーライドされるときに、指定したキーに関連付けられているプロパティを取得または設定します。(BaseChannelObjectWithProperties から継承されます。) |
![]() | Keys | 派生クラスでオーバーライドされるときに、チャネル オブジェクトのプロパティに関連付けられているキーの ICollection を取得します。(BaseChannelObjectWithProperties から継承されます。) |
![]() | Properties | チャネル オブジェクトに関連付けられているチャネル プロパティの IDictionary を取得します。(BaseChannelObjectWithProperties から継承されます。) |
![]() | SyncRoot | BaseChannelObjectWithProperties へのアクセスを同期するために使用するオブジェクトを取得します。(BaseChannelObjectWithProperties から継承されます。) |
![]() | Values | チャネル オブジェクトに関連付けられているプロパティの値の ICollection を取得します。(BaseChannelObjectWithProperties から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Add | NotSupportedException をスローします。 (BaseChannelObjectWithProperties から継承されます。) |
![]() | Clear | NotSupportedException をスローします。 (BaseChannelObjectWithProperties から継承されます。) |
![]() | Contains | 指定したキーに関連付けられているプロパティが、チャネル オブジェクトに格納されているかどうかを示す値を返します。 (BaseChannelObjectWithProperties から継承されます。) |
![]() | CopyTo | NotSupportedException をスローします。 (BaseChannelObjectWithProperties から継承されます。) |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetEnumerator | チャネル オブジェクトに関連付けられているすべてのプロパティを列挙する IDictionaryEnumerator を返します。 (BaseChannelObjectWithProperties から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | Remove | NotSupportedException をスローします。 (BaseChannelObjectWithProperties から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

- BaseChannelSinkWithPropertiesのページへのリンク