SdlChannelSink.ProcessMessage メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のシンクからのメッセージ処理を要求します。
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
パラメーター
- sinkStack
- IServerChannelSinkStack
現在のシンクを呼び出したチャネル シンクのスタック。
- requestMsg
- IMessage
要求を格納しているメッセージ。
- requestHeaders
- ITransportHeaders
クライアントからの受信メッセージから取得したヘッダー。
- requestStream
- Stream
処理して、逆シリアル化シンクに渡す必要があるストリーム。
- responseHeaders
- ITransportHeaders
このメソッドから制御が戻るときに、クライアントへの返信メッセージに追加されるヘッダーを保持する ITransportHeaders が格納されます。 このパラメーターは初期化せずに渡されます。
戻り値
メッセージがどのように処理されたかに関する情報を提供する、ServerProcessing ステータス値。
実装
注釈
プロキシのジョブは、呼び出されたメソッド呼び出しをメッセージ オブジェクトに変換することです。 インターフェイスを実装 IMessage する Message オブジェクトは、メッセージ シンク オブジェクトで を ProcessMessage 呼び出すことによって、クライアントエンドからサーバーエンドに渡されます。 メッセージ シンクは一緒にチェーンされます。つまり、すべてのメッセージ シンクは、その処理を実行した後、次のメッセージ シンクで を呼び出す ProcessMessage 役割を担います。 たとえば、同期関連のメッセージ シンクにより、ロックが取得または解放され、ダウンストリーム メッセージ シンクに委任される可能性があります。
フォーマッタ チャネル シンクは、チャネル経由で送信する必要があるメッセージを取得すると、 を呼び出 SyncProcessMessageし、メッセージをパラメーターとして渡します。 フォーマッタ シンクは、トランスポート ヘッダー配列を作成し、フォーマッタ シンクで を呼び出 GetRequestStream します。 この呼び出しは、シンク チェーン内で転送され、フォーマッタ シンクに戻される要求ストリームを任意のシンクで作成できます。 この呼び出しが返されると、メッセージがシリアル化され、 ProcessMessage シンク チェーンの最初のチェーンでが呼び出され、メッセージがチャネル シンクに渡されます。
チャネル シンクがメッセージを取得した後、ストリームにデータを書き込み、ヘッダー配列にヘッダーを追加し、シンク スタックに追加してから、次のシンクに呼び出しを転送できます。 呼び出しがチェーンの最後でトランスポート シンクに到達すると、トランスポート シンクは、チャネル経由でヘッダーとシリアル化されたメッセージをサーバーに送信します。ここで、プロセスは逆になります。
メッセージがサーバー側に到達すると、トランスポート シンクはストリームからヘッダーとシリアル化されたメッセージを取得し、フォーマッタ シンクに到達するまでシンク チェーンを介して転送します。 フォーマッタ シンクは、メッセージを逆シリアル化してリモート処理に転送します。ここで、メッセージはメソッド呼び出しに変換され、サーバー オブジェクトが呼び出されます。
適用対象
.NET