Freigeben über


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

SecurityException

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

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

Weitere Ressourcen

Empfänger und Empfängerketten