Leer en inglés

Compartir a través de


BaseChannelObjectWithProperties Clase

Definición

Proporciona una implementación base de un objeto de canal que expone una interfaz de diccionario a sus propiedades.

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
Herencia
BaseChannelObjectWithProperties
Derivado
Atributos
Implementaciones

Ejemplos

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

Comentarios

BaseChannelObjectWithProperties es la clase base de BaseChannelWithProperties y BaseChannelSinkWithProperties.

BaseChannelWithProperties y BaseChannelSinkWithProperties se pueden usar como clases base para canales y receptores de canales que proporcionan propiedades con nombre.

BaseChannelObjectWithProperties controla la tarea compleja de pedir un objeto de canal para sus propiedades.

Esta clase realiza una demanda de vínculo y una demanda de herencia en el nivel de clase. SecurityException Se produce una excepción cuando el llamador inmediato o la clase derivada no tienen permiso de infraestructura. Para obtener más información sobre las demandas de seguridad, consulte Demandas de vínculo y demandas de herencia.

Notas a los implementadores

Cuando hereda de BaseChannelObjectWithProperties, debe invalidar la Keys propiedad y la Item[Object] propiedad .

Constructores

BaseChannelObjectWithProperties()

Inicializa una nueva instancia de la clase BaseChannelObjectWithProperties.

Propiedades

Count

Obtiene el número de propiedades asociadas al objeto de canal.

IsFixedSize

Obtiene un valor que indica si el número de propiedades que se pueden especificar en el objeto de canal es fijo.

IsReadOnly

Obtiene un valor que indica si la colección de propiedades del objeto de canal actual es de sólo lectura.

IsSynchronized

Obtiene un valor que indica si el diccionario de las propiedades de un objeto de canal está sincronizado.

Item[Object]

Cuando se reemplaza en una clase derivada, obtiene o establece la propiedad que está asociada a la clave especificada.

Keys

Cuando se reemplaza en una clase derivada, obtiene una ICollection de claves a las que están asociadas las propiedades del objeto de canal.

Properties

Obtiene IDictionary de las propiedades del canal asociadas con el objeto de canal.

SyncRoot

Obtiene un objeto que se utiliza para sincronizar el acceso a BaseChannelObjectWithProperties.

Values

Obtiene ICollection de los valores de las propiedades asociadas al objeto de canal.

Métodos

Add(Object, Object)

Produce una excepción NotSupportedException.

Clear()

Produce una excepción NotSupportedException.

Contains(Object)

Devuelve un valor que indica si el objeto de canal contiene una propiedad asociada a la clave especificada.

CopyTo(Array, Int32)

Produce una excepción NotSupportedException.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetEnumerator()

Devuelve un IDictionaryEnumerator que enumera todas las propiedades asociadas al objeto de canal.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Remove(Object)

Produce una excepción NotSupportedException.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IEnumerable.GetEnumerator()

Devuelve un IEnumerator que enumera todas las propiedades asociadas al objeto de canal.

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.

Se aplica a

Producto Versiones
.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