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
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示