BaseChannelObjectWithProperties Classe

Definição

Oferece uma implementação base de um objeto de canal que expõe uma interface de dicionário a suas propriedades.

public abstract class BaseChannelObjectWithProperties : System.Collections.IDictionary
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class BaseChannelObjectWithProperties : System.Collections.IDictionary
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public abstract class BaseChannelObjectWithProperties : System.Collections.IDictionary
Herança
BaseChannelObjectWithProperties
Derivado
Atributos
Implementações

Exemplos

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

Comentários

BaseChannelObjectWithProperties é a classe base de BaseChannelWithProperties e BaseChannelSinkWithProperties.

BaseChannelWithProperties e BaseChannelSinkWithProperties podem ser usados como classes base para canais e coletores de canal que fornecem propriedades nomeadas.

BaseChannelObjectWithProperties manipula a tarefa complexa de solicitar suas propriedades a um objeto de canal.

Essa classe faz uma demanda de link e uma demanda de herança no nível da classe. Um SecurityException é gerado quando o chamador imediato ou a classe derivada não tem permissão de infraestrutura. Para obter detalhes sobre as demandas de segurança, consulte Vincular demandas e demandas de herança.

Notas aos Implementadores

Ao herdar de BaseChannelObjectWithProperties, você deve substituir a Keys propriedade e a Item[Object] propriedade .

Construtores

BaseChannelObjectWithProperties()

Inicializa uma nova instância da classe BaseChannelObjectWithProperties.

Propriedades

Count

Obtém o número de propriedades associadas ao objeto de canal.

IsFixedSize

Obtém um valor que indica se o número de propriedades que podem ser inseridas no canal de objeto é fixo.

IsReadOnly

Obtém um valor que indica se a coleção de propriedades no objeto de canal é somente leitura.

IsSynchronized

Obtém um valor que indica se o dicionário de propriedades de objeto de canal é sincronizado.

Item[Object]

Quando substituída em uma classe derivada, obtém ou define a propriedade associada à chave especificada.

Keys

Quando substituída em uma classe derivada, obtém um ICollection de chaves ao qual as propriedades de objeto de canal estão associadas.

Properties

Obtém um IDictionary das propriedades de canal associadas ao objeto de canal.

SyncRoot

Obtém um objeto usado para sincronizar o acesso ao BaseChannelObjectWithProperties.

Values

Obtém um ICollection dos valores das propriedades associadas ao objeto de canal.

Métodos

Add(Object, Object)

Gera uma NotSupportedException.

Clear()

Gera uma NotSupportedException.

Contains(Object)

Retorna um valor que indica se o objeto de canal contém uma propriedade associada à chave especificada.

CopyTo(Array, Int32)

Gera uma NotSupportedException.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetEnumerator()

Retorna um IDictionaryEnumerator que enumera em todas as propriedades associadas ao objeto de canal.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Remove(Object)

Gera uma NotSupportedException.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

IEnumerable.GetEnumerator()

Retorna um IEnumerator que enumera em todas as propriedades associadas ao objeto de canal.

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Aplica-se a

Produto Versões
.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