BaseChannelSinkWithProperties Class

Definition

Provides a base implementation for channel sinks that want to expose a dictionary interface to their properties.

C#
public abstract class BaseChannelSinkWithProperties : System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties
C#
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class BaseChannelSinkWithProperties : System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties
C#
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public abstract class BaseChannelSinkWithProperties : System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties
Inheritance
BaseChannelSinkWithProperties
Attributes

Examples

C#
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
{
}

Remarks

Channel sinks provide a plug-in point that allows access to the underlying messages that are flowing through the channel as well as the stream that is used by the transport mechanism to send messages to a remote object. Channel sinks are linked together in a chain of channel sink providers, and all channel messages flow through this chain of sinks before the message is serialized and transported.

This class makes a link demand and an inheritance demand at the class level. A SecurityException is thrown when either the immediate caller or the derived class does not have infrastructure permission. For details about security demands, see Link Demands and Inheritance Demands.

Notes to Implementers

When you inherit from BaseChannelSinkWithProperties, you must implement the Keys property and the Item[Object] property.

Constructors

BaseChannelSinkWithProperties()

Initializes a new instance of the BaseChannelSinkWithProperties class.

Properties

Count

Gets the number of properties associated with the channel object.

(Inherited from BaseChannelObjectWithProperties)
IsFixedSize

Gets a value that indicates whether the number of properties that can be entered into the channel object is fixed.

(Inherited from BaseChannelObjectWithProperties)
IsReadOnly

Gets a value that indicates whether the collection of properties in the channel object is read-only.

(Inherited from BaseChannelObjectWithProperties)
IsSynchronized

Gets a value that indicates whether the dictionary of channel object properties is synchronized.

(Inherited from BaseChannelObjectWithProperties)
Item[Object]

When overridden in a derived class, gets or sets the property that is associated with the specified key.

(Inherited from BaseChannelObjectWithProperties)
Keys

When overridden in a derived class, gets a ICollection of keys that the channel object properties are associated with.

(Inherited from BaseChannelObjectWithProperties)
Properties

Gets a IDictionary of the channel properties associated with the channel object.

(Inherited from BaseChannelObjectWithProperties)
SyncRoot

Gets an object that is used to synchronize access to the BaseChannelObjectWithProperties.

(Inherited from BaseChannelObjectWithProperties)
Values

Gets a ICollection of the values of the properties associated with the channel object.

(Inherited from BaseChannelObjectWithProperties)

Methods

Add(Object, Object)

Throws a NotSupportedException.

(Inherited from BaseChannelObjectWithProperties)
Clear()

Throws a NotSupportedException.

(Inherited from BaseChannelObjectWithProperties)
Contains(Object)

Returns a value that indicates whether the channel object contains a property that is associated with the specified key.

(Inherited from BaseChannelObjectWithProperties)
CopyTo(Array, Int32)

Throws a NotSupportedException.

(Inherited from BaseChannelObjectWithProperties)
Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator()

Returns a IDictionaryEnumerator that enumerates over all the properties associated with the channel object.

(Inherited from BaseChannelObjectWithProperties)
GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetType()

Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
Remove(Object)

Throws a NotSupportedException.

(Inherited from BaseChannelObjectWithProperties)
ToString()

Returns a string that represents the current object.

(Inherited from Object)

Explicit Interface Implementations

IEnumerable.GetEnumerator()

Returns a IEnumerator that enumerates over all the properties that are associated with the channel object.

(Inherited from BaseChannelObjectWithProperties)

Extension Methods

Cast<TResult>(IEnumerable)

Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Enables parallelization of a query.

AsQueryable(IEnumerable)

Converts an IEnumerable to an IQueryable.

Applies to

Proizvod Verzije
.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