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
처리되어 deserialization 싱크로 전달되어야 할 스트림입니다.
- responseHeaders
- ITransportHeaders
이 메서드가 반환할 때 클라이언트로 보내는 반환 메시지 머리글에 추가할 헤더가 들어 있는 ITransportHeaders를 포함합니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.
반환
메시지 처리 방법에 대한 정보를 제공하는 ServerProcessing 상태 값입니다.
구현
설명
프록시의 역할은 메시지 개체에 대해 호출 되는 메서드 호출을 변환 하는 것입니다. 구현 하는 메시지 개체를 IMessage 인터페이스를 호출 하 여 클라이언트 쪽에서 서버 쪽 전달 ProcessMessage 메시지 싱크 개체에서. 즉, 모든 메시지 싱크 호출에 대 한 책임 지는 메시지 싱크를 함께 연결 ProcessMessage 에서 해당 작업을 수행한 후 다음 메시지 싱크 합니다. 예를 들어 동기화와 관련 된 메시지 싱크를 획득 또는 해제 하 고 다운스트림 메시지 싱크를 위임 된 잠금이 발생할 수 있습니다.
포맷터 채널 싱크 보낼 채널을 통해 호출 해야 하는 메시지를 가져옵니다 하는 경우 SyncProcessMessage, 메시지를 매개 변수로 전달 합니다. 포맷터 싱크는 전송 헤더 배열 및 호출에 다음 만듭니다 GetRequestStream 포맷터 싱크의 합니다. 이 호출은 싱크 체인으로 전달되고 싱크는 포맷터 싱크로 다시 전달되는 요청 스트림을 만들 수 있습니다. 이 호출이 반환, 메시지를 serialize ProcessMessage 싱크 체인에 있는 첫 번째 체인에서 호출 되 고 메시지 채널 싱크로 전달 됩니다.
채널 싱크 메시지가 스트림에 데이터를 쓸, 헤더 배열에 헤더를 추가 고 호출을 다음 싱크로 전달 하기 전에 싱크 스택에 추가 되도록 수 있습니다. 호출 전송 싱크 체인의 끝에 도달 하면 전송 싱크에서 헤더를 보내고 서버로 싱크에서 채널을 통해 메시지를 직렬화 합니다.
메시지 서버 쪽에 도달 하면 전송 싱크에서 헤더 검색 serialize 된 스트림에서 메시지 및 포맷터 싱크에 도달할 때까지 싱크 체인을 통해 전달 합니다. 그런 다음 포맷터 싱크는 메시지를 역직렬화하 고 원격을 사용할 수 있는 메시지는 메서드 호출으로 설정 되어 있으며 해당 서버 개체를 호출에 전달.
적용 대상
.NET