SdlChannelSink.ProcessMessage Metod

Definition

Begär meddelandebearbetning från den aktuella mottagaren.

public:
 virtual System::Runtime::Remoting::Channels::ServerProcessing ProcessMessage(System::Runtime::Remoting::Channels::IServerChannelSinkStack ^ sinkStack, System::Runtime::Remoting::Messaging::IMessage ^ requestMsg, System::Runtime::Remoting::Channels::ITransportHeaders ^ requestHeaders, System::IO::Stream ^ requestStream, [Runtime::InteropServices::Out] System::Runtime::Remoting::Messaging::IMessage ^ % responseMsg, [Runtime::InteropServices::Out] System::Runtime::Remoting::Channels::ITransportHeaders ^ % responseHeaders, [Runtime::InteropServices::Out] System::IO::Stream ^ % responseStream);
public System.Runtime.Remoting.Channels.ServerProcessing ProcessMessage(System.Runtime.Remoting.Channels.IServerChannelSinkStack sinkStack, System.Runtime.Remoting.Messaging.IMessage requestMsg, System.Runtime.Remoting.Channels.ITransportHeaders requestHeaders, System.IO.Stream requestStream, out System.Runtime.Remoting.Messaging.IMessage responseMsg, out System.Runtime.Remoting.Channels.ITransportHeaders responseHeaders, out System.IO.Stream responseStream);
abstract member ProcessMessage : System.Runtime.Remoting.Channels.IServerChannelSinkStack * System.Runtime.Remoting.Messaging.IMessage * System.Runtime.Remoting.Channels.ITransportHeaders * System.IO.Stream * IMessage * ITransportHeaders * Stream -> System.Runtime.Remoting.Channels.ServerProcessing
override this.ProcessMessage : System.Runtime.Remoting.Channels.IServerChannelSinkStack * System.Runtime.Remoting.Messaging.IMessage * System.Runtime.Remoting.Channels.ITransportHeaders * System.IO.Stream * IMessage * ITransportHeaders * Stream -> System.Runtime.Remoting.Channels.ServerProcessing
Public Function ProcessMessage (sinkStack As IServerChannelSinkStack, requestMsg As IMessage, requestHeaders As ITransportHeaders, requestStream As Stream, ByRef responseMsg As IMessage, ByRef responseHeaders As ITransportHeaders, ByRef responseStream As Stream) As ServerProcessing

Parametrar

sinkStack
IServerChannelSinkStack

En stack med kanalmottagare som anropade den aktuella mottagaren.

requestMsg
IMessage

Meddelandet som innehåller begäran.

requestHeaders
ITransportHeaders

Rubrikerna som hämtas från det inkommande meddelandet från klienten.

requestStream
Stream

Dataströmmen som måste bearbetas och skickas vidare till deserialiseringsmottagaren.

responseMsg
IMessage

När den här metoden returneras innehåller en IMessage som innehåller svarsmeddelandet. Den här parametern skickas oinitierad.

responseHeaders
ITransportHeaders

När den här metoden returnerar innehåller en ITransportHeaders som innehåller rubrikerna som ska läggas till för att returnera meddelanderubriken till klienten. Den här parametern skickas oinitierad.

responseStream
Stream

När den här metoden returnerar innehåller en Stream som är på väg till transportmottagaren. Den här parametern skickas oinitierad.

Returer

Ett ServerProcessing statusvärde som innehåller information om hur meddelandet bearbetades.

Implementeringar

Kommentarer

Proxyns jobb är att konvertera ett metodanrop som anropas på den till ett meddelandeobjekt. Meddelandeobjektet, som implementerar gränssnittet, skickas IMessage från klientslutet till serverslutet genom att ProcessMessage anropa på objekt för meddelandemottagare. Meddelandemottagare är sammanlänkade, vilket innebär att varje meddelandemottagare ansvarar för att anropa ProcessMessage nästa meddelandemottagare när den har utfört sitt arbete. Till exempel kan en synkroniseringsrelaterad meddelandemottagare orsaka att ett lås hämtas eller frigörs och delegeras till den underordnade meddelandemottagaren.

När formateringskanalmottagaren får ett meddelande som måste skickas via kanalen anropar SyncProcessMessageden och skickar meddelandet som en parameter. Formateringsmottagaren skapar sedan matrisen för transporthuvudet och anropar GetRequestStream formateringsmottagaren. Det här anropet vidarebefordras nedåt i mottagarkedjan och alla mottagare kan skapa en begärandeström som skickas tillbaka till formateringsmottagaren. När det här anropet har returnerats serialiseras meddelandet, ProcessMessage anropas på den första kedjan i mottagarkedjan och meddelandet skickas till kanalmottagaren.

När kanalmottagaren har fått meddelandet kan de skriva data till strömmen, lägga till rubriker i huvudmatrisen och lägga till sig själva i mottagarstacken innan anropet vidarebefordras till nästa mottagare. När anropet når transportmottagaren i slutet av kedjan skickar transportmottagaren rubrikerna och serialiserade meddelanden över kanalen till servern, där processen är omvänd.

När meddelandet når serversidan hämtar transportmottagaren rubrikerna och det serialiserade meddelandet från strömmen och vidarebefordrar dessa via mottagarkedjan tills de når formateringsmottagaren. Formateringsmottagaren deserialiserar sedan meddelandet och vidarebefordrar det till fjärrkommunikation, där meddelandet omvandlas till ett metodanrop och serverobjektet anropas.

Gäller för