BaseChannelObjectWithProperties Klasa

Definicja

Udostępnia podstawową implementację obiektu kanału, który uwidacznia interfejs słownika do jego właściwości.

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
Dziedziczenie
BaseChannelObjectWithProperties
Pochodne
Atrybuty
Implementuje

Przykłady

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;
         }
      }
   }

Uwagi

BaseChannelObjectWithProperties jest klasą bazową dla i BaseChannelWithPropertiesBaseChannelSinkWithProperties.

BaseChannelWithProperties i BaseChannelSinkWithProperties mogą być używane jako klasy bazowe dla kanałów i ujściów kanałów, które zapewniają nazwane właściwości.

BaseChannelObjectWithProperties obsługuje złożone zadanie z pytaniem obiektu kanału o jego właściwości.

Ta klasa sprawia, że żądanie połączenia i zapotrzebowanie na dziedziczenie na poziomie klasy. Element jest SecurityException zgłaszany, gdy obiekt wywołujący natychmiast lub klasa pochodna nie ma uprawnień infrastruktury. Aby uzyskać szczegółowe informacje na temat wymagań dotyczących zabezpieczeń, zobacz Łączenie żądań i żądań dziedziczenia.

Uwagi dotyczące implementowania

Gdy dziedziczysz z BaseChannelObjectWithPropertiesklasy , należy zastąpić Keys właściwość i Item[Object] właściwość .

Konstruktory

Właściwości

Count

Pobiera liczbę właściwości skojarzonych z obiektem kanału.

IsFixedSize

Pobiera wartość wskazującą, czy liczba właściwości, które można wprowadzić do obiektu kanału, jest stała.

IsReadOnly

Pobiera wartość wskazującą, czy kolekcja właściwości w obiekcie kanału jest tylko do odczytu.

IsSynchronized

Pobiera wartość wskazującą, czy słownik właściwości obiektu kanału jest synchronizowany.

Item[Object]

Po zastąpieniu w klasie pochodnej pobiera lub ustawia właściwość skojarzona z określonym kluczem.

Keys

Po zastąpieniu w klasie pochodnej pobiera ICollection klucze, z którymi są skojarzone właściwości obiektu kanału.

Properties

IDictionary Pobiera właściwości kanału skojarzone z obiektem kanału.

SyncRoot

Pobiera obiekt używany do synchronizowania dostępu do obiektu BaseChannelObjectWithProperties.

Values

Pobiera wartości ICollection właściwości skojarzonych z obiektem kanału.

Metody

Add(Object, Object)

Zgłasza element NotSupportedException.

Clear()

Zgłasza element NotSupportedException.

Contains(Object)

Zwraca wartość wskazującą, czy obiekt kanału zawiera właściwość skojarzona z określonym kluczem.

CopyTo(Array, Int32)

Zgłasza element NotSupportedException.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetEnumerator()

Zwraca wartość IDictionaryEnumerator , która wylicza wszystkie właściwości skojarzone z obiektem kanału.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Remove(Object)

Zgłasza element NotSupportedException.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IEnumerable.GetEnumerator()

Zwraca wartość IEnumerator , która wylicza wszystkie właściwości skojarzone z obiektem kanału.

Metody rozszerzania

Cast<TResult>(IEnumerable)

Rzutuje elementy elementu IEnumerable do określonego typu.

OfType<TResult>(IEnumerable)

Filtruje elementy elementu IEnumerable na podstawie określonego typu.

AsParallel(IEnumerable)

Umożliwia równoległość zapytania.

AsQueryable(IEnumerable)

Konwertuje element IEnumerable na .IQueryable

Dotyczy

Produkt Wersje
.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