英語で読む

次の方法で共有


BaseChannelObjectWithProperties クラス

定義

プロパティにディクショナリ インターフェイスを公開する、チャネル オブジェクトの基本実装を提供します。

C#
public abstract class BaseChannelObjectWithProperties : System.Collections.IDictionary
C#
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class BaseChannelObjectWithProperties : System.Collections.IDictionary
C#
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public abstract class BaseChannelObjectWithProperties : System.Collections.IDictionary
継承
BaseChannelObjectWithProperties
派生
属性
実装

C#
   public class LoggingServerChannelSinkProvider : IServerChannelSinkProvider
   {
      private IServerChannelSinkProvider next2 = null;
      public LoggingServerChannelSinkProvider(IDictionary properties, ICollection providerData)
      {
      }
      public void GetChannelData(IChannelDataStore channelData)
      {
      }
      public IServerChannelSink CreateSink(IChannelReceiver channel1)
      {
         IServerChannelSink localNextSink = null;
         if (next2 != null)
            localNextSink = next2.CreateSink(channel1);
         return new LoggingServerChannelSink(localNextSink);
      }
      public IServerChannelSinkProvider Next
      {
         get
         {
            return next2;
         }
         set
         {
            next2 = value;
         }
      }
   }
   
   internal class LoggingServerChannelSink : BaseChannelObjectWithProperties, IServerChannelSink
   {
      private IServerChannelSink nextSink2 = null;
      private bool bEnabled2 = true;
      public LoggingServerChannelSink(IServerChannelSink localNextSink) : base()
      {
         nextSink2 = localNextSink;
      }
      public ServerProcessing ProcessMessage(   IServerChannelSinkStack sinkStack,
   IMessage requestMsg,
   ITransportHeaders requestHeaders,
   Stream requestStream,
   out IMessage responseMsg,
   out ITransportHeaders responseHeaders,
   out Stream responseStream
)
      {
         if (bEnabled2)
         {
            Console.WriteLine("----------Request Headers-----------");
            Console.WriteLine( CommonTransportKeys.IPAddress + ":" +
               requestHeaders[CommonTransportKeys.IPAddress]);
            Console.WriteLine( CommonTransportKeys.ConnectionId + ":" +
               requestHeaders[CommonTransportKeys.ConnectionId]);
            Console.WriteLine( CommonTransportKeys.RequestUri + ":" +
               requestHeaders[CommonTransportKeys.RequestUri]);
         }
         sinkStack.Push(this, null);
         ServerProcessing processing =
            nextSink2.ProcessMessage(sinkStack, requestMsg, requestHeaders, requestStream, out responseMsg,
            out responseHeaders, out responseStream);

         switch (processing)
         {
            case ServerProcessing.Complete :
            {
               sinkStack.Pop(this);
               break;
            }
            case ServerProcessing.OneWay:
            {
               sinkStack.Pop(this);
               break;
            }
            case ServerProcessing.Async:
            {
               sinkStack.Store(this, null);
               break;
            }
         }
         return processing;
      }
      public void AsyncProcessResponse(IServerResponseChannelSinkStack sinkStack, Object state,
         IMessage msg, ITransportHeaders headers, Stream stream1)
      {
         sinkStack.AsyncProcessResponse(msg, headers, stream1);
      }
      public Stream GetResponseStream(IServerResponseChannelSinkStack sinkStack, Object state,
         IMessage msg, ITransportHeaders headers)
      {
         return null;
      }
      public IServerChannelSink NextChannelSink
      {
         get
         {
            return nextSink2;
         }
      }
   }

注釈

BaseChannelObjectWithProperties は、BaseChannelWithPropertiesBaseChannelSinkWithProperties の基底クラスです。

BaseChannelWithPropertiesBaseChannelSinkWithProperties は、名前付きプロパティを提供するチャネルおよびチャネル シンクの基底クラスとして使用できます。

BaseChannelObjectWithProperties は、チャネル オブジェクトにプロパティを要求する複雑なタスクを処理します。

このクラスは、クラス レベルでリンク要求と継承要求を行います。 SecurityException直接呼び出し元または派生クラスにインフラストラクチャアクセス許可がない場合、 がスローされます。 セキュリティ要求の詳細については、「 リンクの要求 と継承の 要求」を参照してください。

注意 (実装者)

から BaseChannelObjectWithProperties継承する場合は、 プロパティと プロパティを Keys オーバーライドする Item[Object] 必要があります。

コンストラクター

BaseChannelObjectWithProperties()

BaseChannelObjectWithProperties クラスの新しいインスタンスを初期化します。

プロパティ

Count

チャネル オブジェクトに関連付けられているプロパティの数を取得します。

IsFixedSize

チャネル オブジェクトに入力できるプロパティの数が固定されているかどうかを示す値を取得します。

IsReadOnly

チャネル オブジェクトにあるプロパティのコレクションが読み取り専用かどうかを示す値を取得します。

IsSynchronized

チャネル オブジェクトのプロパティのディクショナリが同期されているかどうかを示す値を取得します。

Item[Object]

派生クラスでオーバーライドされるときに、指定したキーに関連付けられているプロパティを取得または設定します。

Keys

派生クラスでオーバーライドされるときに、チャネル オブジェクトのプロパティに関連付けられているキーの ICollection を取得します。

Properties

チャネル オブジェクトに関連付けられているチャネル プロパティの IDictionary を取得します。

SyncRoot

BaseChannelObjectWithProperties へのアクセスを同期するために使用するオブジェクトを取得します。

Values

チャネル オブジェクトに関連付けられているプロパティの値の ICollection を取得します。

メソッド

Add(Object, Object)

NotSupportedException をスローします。

Clear()

NotSupportedException をスローします。

Contains(Object)

指定したキーに関連付けられているプロパティが、チャネル オブジェクトに格納されているかどうかを示す値を返します。

CopyTo(Array, Int32)

NotSupportedException をスローします。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetEnumerator()

チャネル オブジェクトに関連付けられているすべてのプロパティを列挙する IDictionaryEnumerator を返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Remove(Object)

NotSupportedException をスローします。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

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

IEnumerable.GetEnumerator()

チャネル オブジェクトに関連付けられているすべてのプロパティを列挙する IEnumerator を返します。

拡張メソッド

Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。

OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。

AsParallel(IEnumerable)

クエリの並列化を有効にします。

AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。

適用対象

製品 バージョン
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1