다음을 통해 공유


BinaryServerFormatterSink.ProcessMessage 메서드

정의

현재 싱크에서 메시지 처리를 요청합니다.

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

처리되어 deserialization 싱크로 전달되어야 할 스트림입니다.

responseMsg
IMessage

이 메서드가 반환하면 응답 메시지를 보유하는 IMessage를 포함합니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.

responseHeaders
ITransportHeaders

이 메서드가 반환될 때 클라이언트로 보내는 반환 메시지에 추가될 헤더가 들어 있는 ITransportHeaders를 포함합니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.

responseStream
Stream

이 메서드가 반환될 때 전송 싱크로 향하는 Stream을 포함합니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.

반환

메시지 처리 방법에 대한 정보를 제공하는 ServerProcessing 상태 값입니다.

구현

설명

프록시 작업 메시지에 대해 호출 되는 메서드 호출을 변환 하는 것입니다. 구현 하는 메시지를 IMessage 인터페이스를 호출 하 여 서버 쪽 클라이언트 쪽에서 전달 됩니다 ProcessMessage 메시지 싱크 개체에서 합니다. 즉, 모든 메시지 싱크 호출에 대 한 책임 지는 메시지 싱크를 함께 연결 ProcessMessage 에서 현재 메시지 싱크와 해당 작업을 마친 후 다음 메시지 싱크 합니다. 예를 들어 동기화와 관련 된 메시지 싱크를 획득 또는 해제 하 고 다운스트림 메시지 싱크를 위임 된 잠금이 발생할 수 있습니다.

포맷터 채널 싱크 보낼 채널을 통해 호출 해야 하는 메시지를 가져옵니다 하는 경우 SyncProcessMessage, 메시지를 매개 변수로 전달 합니다. 포맷터 싱크는 전송 헤더 배열 및 호출에 다음 만듭니다 GetRequestStream 포맷터 싱크의 합니다. 이 호출은 싱크 체인으로 전달 되 고 싱크는 포맷터 싱크를 다시 전달 되는 요청 스트림을 만들 수 있습니다. 이 호출이 반환, 메시지를 serialize ProcessMessage 싱크 체인에 있는 첫 번째 체인에서 호출 되 고 메시지 채널 싱크로 전달 됩니다.

채널 싱크 메시지가 스트림에 데이터를 쓸, 헤더 배열에 헤더를 추가 고 호출을 다음 싱크로 전달 하기 전에 싱크 스택에 추가 되도록 수 있습니다. 호출 전송 싱크 체인의 끝에 도달 하면 전송 싱크에서 헤더를 보내고 서버로 싱크에서 채널을 통해 메시지를 직렬화 합니다.

서버 쪽에 메시지를 가져오면 전송 싱크로 헤더 검색 serialize 된 스트림에서 메시지 및 포맷터 싱크에 도달할 때까지 싱크 체인을 통해 전달 합니다. 포맷터 싱크는 다음 메시지를 역직렬화하 고 원격 인프라에 전달 합니다. 그런 다음 원격 인프라 메서드 호출으로 메시지를 변환 하 고 서버 개체를 호출 합니다.

적용 대상