BinaryServerFormatterSink.ProcessMessage Metódus

Definíció

Üzenetfeldolgozást kér az aktuális fogadótól.

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

Paraméterek

sinkStack
IServerChannelSinkStack

Egy halom csatornaelső, amely az aktuális fogadót hívja.

requestMsg
IMessage

A kérést tartalmazó üzenet.

requestHeaders
ITransportHeaders

A bejövő üzenetből az ügyféltől lekért fejlécek.

requestStream
Stream

A feldolgozandó és a deszerializálási fogadónak továbbadandó adatfolyam.

responseMsg
IMessage

Amikor ez a metódus visszatér, a válaszüzenetet IMessage tartalmazó üzenetet tartalmazza. Ez a paraméter nem inicializálva lesz átadva.

responseHeaders
ITransportHeaders

Amikor ez a metódus visszatér, egy olyan fejlécet tartalmaz ITransportHeaders , amelyet hozzá kell adni az ügyfélhez címsorként megadott visszatérési üzenethez. Ez a paraméter nem inicializálva lesz átadva.

responseStream
Stream

Amikor ez a módszer visszatér, egy olyan értéket tartalmaz Stream , amely a szállító fogadó felé tart. Ez a paraméter nem inicializálva lesz átadva.

Válaszok

Állapotérték ServerProcessing , amely információt nyújt az üzenet feldolgozásáról.

Megvalósítás

Megjegyzések

A proxy feladata, hogy a rajta meghívott metódushívásokat üzenetté konvertálja. Az interfészt IMessage megvalósító üzenet az ügyfél végéről a kiszolgáló végére kerül az üzenet fogadó objektumainak meghívásával ProcessMessage . Az üzenet fogadói össze vannak kapcsolva, ami azt jelenti, hogy minden üzenet fogadója felelős a következő üzenet fogadó meghívásáért ProcessMessage , miután az aktuális üzenet fogadója befejezte a munkáját. Például a szinkronizálással kapcsolatos üzenetelfoglaló zárolást okozhat, vagy feloldhatja és delegálhatja az alsóbb rétegbeli üzenet fogadójának.

Amikor a formázó csatorna fogadója egy üzenetet kap, amelyet át kell küldeni a csatornán keresztül, meghívja SyncProcessMessage, és paraméterként adja át az üzenetet. A formázó fogadó ezután létrehozza az átviteli fejléctömböt, és meghívja GetRequestStream a formázó fogadót. Ezt a hívást a rendszer a fogadóláncon továbbítja, és bármely fogadó létrehozhat egy kérésfolyamot, amelyet a rendszer visszaküld a formázó fogadónak. A hívás visszatérése után a rendszer szerializálja az üzenetet, ProcessMessage meghívja a fogadólánc első láncára, és az üzenetet átadja a csatorna fogadóinak.

Miután a csatorna fogadói megkapták az üzenetet, adatokat írhatnak a streambe, fejléceket adhatnak hozzá a fejléctömbhöz, és hozzáadhatják magukat a fogadó veremhez, mielőtt továbbítanák a hívást a következő fogadónak. Amikor a hívás eléri az átviteli fogadót a lánc végén, az átviteli fogadó elküldi a fejléceket és a szerializált üzenetet a csatornán keresztül a kiszolgálónak, ahol a folyamat megfordítva lesz.

Amikor az üzenet a kiszolgáló oldalára kerül, az átviteli fogadó lekéri a fejléceket és a szerializált üzenetet a streamből, és továbbítja ezeket a fogadóláncon keresztül, amíg el nem éri a formázó fogadót. A formázó fogadó ezután deszerializálja az üzenetet, és továbbítja azt az újraindító infrastruktúrának. Ezután az újraegyeztetési infrastruktúra metódushívássá alakítja az üzenetet, és meghívja a kiszolgálóobjektumot.

A következőre érvényes: