IClientChannelSink.ProcessMessage-Methode
Fordert die Meldungsverarbeitung vom aktuellen Empfänger an.
Namespace: System.Runtime.Remoting.Channels
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Sub ProcessMessage ( _
msg As IMessage, _
requestHeaders As ITransportHeaders, _
requestStream As Stream, _
<OutAttribute> ByRef responseHeaders As ITransportHeaders, _
<OutAttribute> ByRef responseStream As Stream _
)
'Usage
Dim instance As IClientChannelSink
Dim msg As IMessage
Dim requestHeaders As ITransportHeaders
Dim requestStream As Stream
Dim responseHeaders As ITransportHeaders
Dim responseStream As Stream
instance.ProcessMessage(msg, requestHeaders, requestStream, responseHeaders, responseStream)
void ProcessMessage (
IMessage msg,
ITransportHeaders requestHeaders,
Stream requestStream,
out ITransportHeaders responseHeaders,
out Stream responseStream
)
void ProcessMessage (
IMessage^ msg,
ITransportHeaders^ requestHeaders,
Stream^ requestStream,
[OutAttribute] ITransportHeaders^% responseHeaders,
[OutAttribute] Stream^% responseStream
)
void ProcessMessage (
IMessage msg,
ITransportHeaders requestHeaders,
Stream requestStream,
/** @attribute OutAttribute() */ /** @ref */ ITransportHeaders responseHeaders,
/** @attribute OutAttribute() */ /** @ref */ Stream responseStream
)
JScript unterstützt die Übergabe von Werttypargumenten als Verweis nicht.
Parameter
- msg
Die zu verarbeitende Meldung.
- requestHeaders
Die Header, die der ausgehenden, an den Server gesendeten Meldung hinzugefügt werden sollen.
- requestStream
Der an die Transportsenke gesendete Stream.
- responseHeaders
Enthält nach dem Beenden dieser Methode eine ITransportHeaders-Schnittstelle mit den vom Server zurückgegebenen Headern. Dieser Parameter wird nicht initialisiert übergeben.
- responseStream
Enthält nach dem Beenden dieser Methode einen Stream, der von der Transportsenke zurückgegeben wird. Dieser Parameter wird nicht initialisiert übergeben.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Der direkte Aufrufer verfügt nicht über die Berechtigung für die Infrastruktur. |
Beispiel
Im folgenden Codebeispiel wird eine Implementierung dieser Methode veranschaulicht.
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.Infrastructure)]
public void ProcessMessage (IMessage message,
ITransportHeaders requestHeaders,
Stream requestStream,
out ITransportHeaders responseHeaders,
out Stream responseStream)
{
// Print the request message properties.
Console.WriteLine("---- Message from the client ----");
IDictionary dictionary = message.Properties;
foreach (Object key in dictionary.Keys)
{
Console.WriteLine("{0} = {1}", key, dictionary[key]);
}
Console.WriteLine("---------------------------------");
// Hand off to the next sink in the chain.
nextSink.ProcessMessage(message, requestHeaders, requestStream, out responseHeaders, out responseStream);
}
virtual void ProcessMessage( IMessage^ message, ITransportHeaders^ requestHeaders, Stream^ requestStream, [Out]ITransportHeaders^% responseHeaders, [Out]Stream^% responseStream )
{
// Print the request message properties.
Console::WriteLine( "---- Message from the client ----" );
IDictionary^ dictionary = message->Properties;
IEnumerator^ myEnum = dictionary->Keys->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ key = safe_cast<Object^>(myEnum->Current);
Console::WriteLine( "{0} = {1}", key, dictionary[ key ] );
}
Console::WriteLine( "---------------------------------" );
// Hand off to the next sink in the chain.
nextSink->ProcessMessage( message, requestHeaders, requestStream, responseHeaders, responseStream );
}
public void ProcessMessage(IMessage message, ITransportHeaders requestHeaders,
Stream requestStream, /** @ref */ ITransportHeaders responseHeaders,
/** @ref */ Stream responseStream)
{
// Print the request message properties.
Console.WriteLine("---- Message from the client ----");
IDictionary dictionary = message.get_Properties();
Object key = null;
IEnumerator objEnum = dictionary.get_Keys().GetEnumerator();
while (objEnum.MoveNext()) {
key = objEnum.get_Current();
Console.WriteLine("{0} = {1}", key, dictionary.get_Item(key));
}
Console.WriteLine("---------------------------------");
// Hand off to the next sink in the chain.
nextSink.ProcessMessage(message, requestHeaders, requestStream,
responseHeaders, responseStream);
} //ProcessMessage
.NET Framework-Sicherheit
- SecurityPermission für die Verwendung von Infrastrukturcode. Anforderungswert: SecurityAction.LinkDemand; Berechtigungswert: SecurityPermissionFlag.Infrastructure
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
IClientChannelSink-Schnittstelle
IClientChannelSink-Member
System.Runtime.Remoting.Channels-Namespace