Bagikan melalui


SdlChannelSink.ProcessMessage Metode

Definisi

Meminta pemrosesan pesan dari sink saat ini.

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

Parameter

sinkStack
IServerChannelSinkStack

Tumpukan sink saluran yang disebut sink saat ini.

requestMsg
IMessage

Pesan yang berisi permintaan.

requestHeaders
ITransportHeaders

Header yang diambil dari pesan masuk dari klien.

requestStream
Stream

Aliran yang perlu diproses dan diteruskan ke sink deserialisasi.

responseMsg
IMessage

Ketika metode ini kembali, berisi yang IMessage menyimpan pesan respons. Parameter ini diteruskan tanpa diinisialisasi.

responseHeaders
ITransportHeaders

Ketika metode ini kembali, berisi ITransportHeaders yang menyimpan header untuk ditambahkan untuk mengembalikan judul pesan ke klien. Parameter ini diteruskan tanpa diinisialisasi.

responseStream
Stream

Ketika metode ini kembali, berisi Stream yang menuju ke sink transportasi. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan

Nilai ServerProcessing status yang menyediakan informasi tentang bagaimana pesan diproses.

Penerapan

Keterangan

Tugas proksi adalah mengonversi panggilan metode yang dipanggil di atasnya menjadi objek pesan. Objek Pesan, yang mengimplementasikan IMessage antarmuka, diteruskan dari ujung klien ke ujung server dengan memanggil ProcessMessage objek sink pesan. Sink pesan dirangkai bersama-sama, yang berarti bahwa setiap sink pesan bertanggung jawab untuk memanggil ProcessMessage pada sink pesan berikutnya setelah melakukan pekerjaannya. Misalnya, sink pesan terkait sinkronisasi dapat menyebabkan kunci diperoleh atau dirilis dan didelegasikan ke sink pesan hilir.

Ketika sink saluran pemformat mendapatkan pesan yang perlu dikirim melalui saluran, sink SyncProcessMessagememanggil , meneruskan pesan sebagai parameter. Sink formatter kemudian membuat array header transportasi dan panggilan GetRequestStream pada sink formatter. Panggilan ini diteruskan ke rantai sink, dan sink apa pun dapat membuat aliran permintaan yang diteruskan kembali ke sink formatter. Setelah panggilan ini kembali, pesan diserialisasikan, ProcessMessage dipanggil pada rantai pertama dalam rantai sink, dan pesan diteruskan ke sink saluran.

Setelah sink saluran mendapatkan pesan, mereka dapat menulis data ke aliran, menambahkan header ke array header, dan menambahkan diri mereka ke tumpukan sink sebelum meneruskan panggilan ke sink berikutnya. Ketika panggilan mencapai sink transportasi di akhir rantai, sink transportasi mengirim header dan pesan berseri melalui saluran ke server, tempat proses dibalik.

Ketika pesan mencapai sisi server, sink transportasi mengambil header dan pesan berseri dari aliran dan meneruskan ini melalui rantai sink hingga mencapai sink formatter. Sink formatter kemudian mendeserialisasi pesan dan meneruskannya ke jarak jauh, di mana pesan diubah menjadi panggilan metode dan objek server dipanggil.

Berlaku untuk