BaseChannelSinkWithProperties Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Basisimplementierung für Channelsenken bereit, bei denen eine Wörterbuchschnittstelle für ihre Eigenschaften verfügbar gemacht werden soll.
public ref class BaseChannelSinkWithProperties abstract : System::Runtime::Remoting::Channels::BaseChannelObjectWithProperties
public abstract class BaseChannelSinkWithProperties : System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class BaseChannelSinkWithProperties : System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public abstract class BaseChannelSinkWithProperties : System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties
type BaseChannelSinkWithProperties = class
inherit BaseChannelObjectWithProperties
[<System.Runtime.InteropServices.ComVisible(true)>]
type BaseChannelSinkWithProperties = class
inherit BaseChannelObjectWithProperties
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Security.SecurityCritical>]
type BaseChannelSinkWithProperties = class
inherit BaseChannelObjectWithProperties
Public MustInherit Class BaseChannelSinkWithProperties
Inherits BaseChannelObjectWithProperties
- Vererbung
- Attribute
Beispiele
[SecurityPermission(SecurityAction::Demand, Flags = SecurityPermissionFlag::Infrastructure)]
private ref class MyClientFormatterChannelSink: public BaseChannelSinkWithProperties, public IClientChannelSink, public IMessageSink
{
private:
IClientChannelSink^ nextClientSink;
IMessageSink^ nextMessageSink;
public:
MyClientFormatterChannelSink()
: nextClientSink( nullptr ), nextMessageSink( nullptr )
{}
MyClientFormatterChannelSink( IClientChannelSink^ nextSink, IMessageSink^ nextMsgSink )
: BaseChannelSinkWithProperties()
{
nextClientSink = nextSink;
nextMessageSink = nextMsgSink;
}
virtual void ProcessMessage( IMessage^ message, ITransportHeaders^ requestHeaders, Stream^ requestStream, [Out]ITransportHeaders^% responseHeaders, [Out]Stream^% responseStream )
{
nextClientSink->ProcessMessage( message, requestHeaders, requestStream, responseHeaders, responseStream );
}
virtual void AsyncProcessRequest( IClientChannelSinkStack^ sinkStack, IMessage^ msg, ITransportHeaders^ headers, Stream^ myStream )
{
sinkStack->Push( this, nullptr );
nextClientSink->AsyncProcessRequest( sinkStack, msg, headers, myStream );
}
virtual void AsyncProcessResponse( IClientResponseChannelSinkStack^ sinkStack, Object^ /*state*/, ITransportHeaders^ headers, Stream^ myStream )
{
sinkStack->AsyncProcessResponse( headers, myStream );
}
virtual Stream^ GetRequestStream( IMessage^ /*msg*/, ITransportHeaders^ /*headers*/ )
{
return nullptr;
}
property IClientChannelSink^ NextChannelSink
{
virtual IClientChannelSink^ get()
{
return nextClientSink;
}
}
property IMessageSink^ NextSink
{
virtual IMessageSink^ get()
{
return nextMessageSink;
}
}
virtual IMessageCtrl^ AsyncProcessMessage( IMessage^ /*msg*/, IMessageSink^ /*replySink*/ )
{
return nullptr;
}
virtual IMessage^ SyncProcessMessage( IMessage^ msg )
{
return nextMessageSink->SyncProcessMessage( msg );
}
property Object^ Item [Object^]
{
virtual Object^ get( Object^ key ) override
{
if ( key == MyKey::typeid )
return this;
return nullptr;
}
virtual void set( Object^ /*value*/, Object^ /*key*/ ) override
{
throw gcnew NotSupportedException;
}
}
property ICollection^ Keys
{
virtual ICollection^ get() override
{
ArrayList^ myKeys = gcnew ArrayList( 1 );
myKeys->Add( MyKey::typeid );
return myKeys;
}
}
};
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
{
}
<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> _
Friend Class MyClientFormatterChannelSink
Inherits BaseChannelSinkWithProperties
Implements IClientChannelSink, IMessageSink
Private nextClientSink As IClientChannelSink = Nothing
Private nextMessageSink As IMessageSink = Nothing
Public Sub New(nextSink As IClientChannelSink, nextMsgSink As IMessageSink)
MyBase.New()
nextClientSink = nextSink
nextMessageSink = nextMsgSink
End Sub
Public Sub ProcessMessage(msg As IMessage, requestHeaders As ITransportHeaders, _
requestStream As Stream, ByRef responseHeaders As ITransportHeaders, _
ByRef responseStream As Stream) _
Implements IClientChannelSink.ProcessMessage
nextClientSink.ProcessMessage(msg, requestHeaders, requestStream, _
responseHeaders, responseStream)
End Sub
Public Sub AsyncProcessRequest(sinkStack As IClientChannelSinkStack, _
msg As IMessage, headers As ITransportHeaders, myStream As Stream) _
Implements IClientChannelSink.AsyncProcessRequest
sinkStack.Push(Me, Nothing)
nextClientSink.AsyncProcessRequest(sinkStack, msg, headers, myStream)
End Sub
Public Sub AsyncProcessResponse(sinkStack As IClientResponseChannelSinkStack, _
state As Object, headers As ITransportHeaders, myStream As Stream) _
Implements IClientChannelSink.AsyncProcessResponse
sinkStack.AsyncProcessResponse(headers, myStream)
End Sub
Public Function GetRequestStream(msg As IMessage, headers As ITransportHeaders) As Stream _
Implements IClientChannelSink.GetRequestStream
Return Nothing
End Function 'GetRequestStream
Public ReadOnly Property NextChannelSink() As IClientChannelSink _
Implements IClientChannelSink.NextChannelSink
Get
Return nextClientSink
End Get
End Property
Public ReadOnly Property NextSink() As IMessageSink _
Implements IMessageSink.NextSink
Get
Return nextMessageSink
End Get
End Property
Public Overrides ReadOnly Property Properties() As Collections.IDictionary _
Implements IClientChannelSink.Properties
Get
End Get
End Property
Public Function AsyncProcessMessage(msg As IMessage, replySink As IMessageSink) As IMessageCtrl _
Implements IMessageSink.AsyncProcessMessage
Return Nothing
End Function 'AsyncProcessMessage
Public Function SyncProcessMessage(msg As IMessage) As IMessage _
Implements IMessageSink.SyncProcessMessage
Return nextMessageSink.SyncProcessMessage(msg)
End Function 'SyncProcessMessage
Default Public Overrides Property Item(key As Object) As Object
Get
If key Is GetType(MyKey) Then
Return Me
End If
Return Nothing
End Get
Set
Throw New NotSupportedException()
End Set
End Property
Public Overrides ReadOnly Property Keys() As ICollection
Get
Dim myKeys As New ArrayList(0)
myKeys.Add(GetType(MyKey))
Return myKeys
End Get
End Property
End Class
Public Class MyKey
End Class
Hinweise
Kanalsenken stellen einen Plug-In-Punkt bereit, der den Zugriff auf die zugrunde liegenden Nachrichten ermöglicht, die durch den Kanal fließen, sowie auf den Stream, der vom Transportmechanismus zum Senden von Nachrichten an ein Remoteobjekt verwendet wird. Kanalsenken sind in einer Kette von Kanalsenkenanbietern miteinander verknüpft, und alle Kanalnachrichten durchlaufen diese Kette von Senken, bevor die Nachricht serialisiert und transportiert wird.
Diese Klasse stellt eine Linkanforderung und eine Vererbungsanforderung auf Klassenebene her. Ein SecurityException wird ausgelöst, wenn entweder der unmittelbare Aufrufer oder die abgeleitete Klasse über keine Infrastrukturberechtigung verfügt. Ausführliche Informationen zu Sicherheitsanforderungen finden Sie unter Linkanforderungen und Vererbungsanforderungen.
Hinweise für Ausführende
Wenn Sie von erben BaseChannelSinkWithProperties, müssen Sie die Keys -Eigenschaft und die Item[Object] -Eigenschaft implementieren.
Konstruktoren
BaseChannelSinkWithProperties() |
Initialisiert eine neue Instanz der BaseChannelSinkWithProperties-Klasse. |
Eigenschaften
Count |
Ruft die Anzahl der Eigenschaften ab, die dem Channelobjekt zugeordnet sind. (Geerbt von BaseChannelObjectWithProperties) |
IsFixedSize |
Ruft einen Wert ab, der angibt, ob die Anzahl der Eigenschaften, die in das Channelobjekt eingegeben werden können, festgelegt ist. (Geerbt von BaseChannelObjectWithProperties) |
IsReadOnly |
Ruft einen Wert ab, der angibt, ob die Auflistung von Eigenschaften im Channelobjekt schreibgeschützt ist. (Geerbt von BaseChannelObjectWithProperties) |
IsSynchronized |
Ruft einen Wert ab, der angibt, ob das Wörterbuch von Channelobjekteigenschaften synchronisiert ist. (Geerbt von BaseChannelObjectWithProperties) |
Item[Object] |
Ruft beim Überschreiben in einer abgeleiteten Klasse die Eigenschaft ab, die dem angegebenen Schlüssel zugeordnet ist, oder legt diese fest. (Geerbt von BaseChannelObjectWithProperties) |
Keys |
Ruft beim Überschreiben in einer abgeleiteten Klasse eine ICollection von Schlüsseln ab, denen die Channelobjekteigenschaften zugeordnet sind. (Geerbt von BaseChannelObjectWithProperties) |
Properties |
Ruft ein IDictionary von Channeleigenschaften ab, die dem Channelobjekt zugeordnet sind. (Geerbt von BaseChannelObjectWithProperties) |
SyncRoot |
Ruft ein Objekt ab, mit dem der Zugriff auf das BaseChannelObjectWithProperties synchronisiert wird. (Geerbt von BaseChannelObjectWithProperties) |
Values |
Ruft eine ICollection der Werte der Eigenschaften ab, die dem Channelobjekt zugeordnet sind. (Geerbt von BaseChannelObjectWithProperties) |
Methoden
Add(Object, Object) |
Löst eine NotSupportedException aus. (Geerbt von BaseChannelObjectWithProperties) |
Clear() |
Löst eine NotSupportedException aus. (Geerbt von BaseChannelObjectWithProperties) |
Contains(Object) |
Gibt einen Wert zurück, der angibt, ob das Channelobjekt eine dem angegebenen Schlüssel zugeordnete Eigenschaft enthält. (Geerbt von BaseChannelObjectWithProperties) |
CopyTo(Array, Int32) |
Löst eine NotSupportedException aus. (Geerbt von BaseChannelObjectWithProperties) |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetEnumerator() |
Gibt einen IDictionaryEnumerator zurück, der alle dem Channelobjekt zugeordneten Eigenschaften auflistet. (Geerbt von BaseChannelObjectWithProperties) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
Remove(Object) |
Löst eine NotSupportedException aus. (Geerbt von BaseChannelObjectWithProperties) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
IEnumerable.GetEnumerator() |
Gibt einen IEnumerator zurück, der alle dem Channelobjekt zugeordneten Eigenschaften auflistet. (Geerbt von BaseChannelObjectWithProperties) |
Erweiterungsmethoden
Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um |
OfType<TResult>(IEnumerable) |
Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs |
AsParallel(IEnumerable) |
Ermöglicht die Parallelisierung einer Abfrage. |
AsQueryable(IEnumerable) |
Konvertiert einen IEnumerable in einen IQueryable. |