System.Runtime.Remoting.Messaging 네임스페이스
System.Runtime.Remoting.Messaging 네임스페이스에는 메시지를 만들고 전송하는 데 사용되는 클래스가 포함되어 있습니다. 원격 인프라는 메시지를 사용하여 원격 개체와 통신합니다. 메시지는 원격 메서드 호출을 전송하고 원격 개체를 활성화하며 정보를 전달하는 데 사용됩니다. 메시지 개체는 동작 식별자, 엔보이 정보 및 매개 변수를 비롯한 명명된 속성 집합을 전달합니다. System.Runtime.Remoting.Messaging 네임스페이스의 가장 중요한 클래스 중에는 AsyncResult 클래스, RemotingSurrogateSelector 클래스 및 ReturnMessage 클래스가 있습니다.
AsyncResult 클래스는 비동기 메서드 호출의 결과를 저장하고 반환합니다. AsyncResult 인스턴스는 return 값, 호출 상태, 호출에 사용되는 대리자 및 비동기 메서드 호출에 대한 기타 정보를 포함합니다.
RemotingSurrogateSelector 클래스를 사용하면 MarshalByRefObject를 확장하는 개체의 serialization을 제어할 수 있습니다. RemotingSurrogateSelector는 그러한 개체를 serialize하고 deserialize하는 데 사용되는 서로게이트를 선택합니다. 서로게이트는 개체의 serialization이나 deserialization을 제어할 수 있는 개체입니다.
ReturnMessage 클래스에는 원격 메서드 호출 후에 반환되는 정보가 들어 있습니다. 또한 ReturnMessage에는 return 값과 원격 메서드 호출로 인한 out 매개 변수 또는 ref 매개 변수가 들어 있습니다.
클래스
클래스 | 설명 | |
---|---|---|
AsyncResult | 비동기 대리자가 수행하는 비동기 작업의 결과를 캡슐화합니다. | |
CallContext | 실행 코드 경로로 전달된 속성 집합을 제공합니다. 이 클래스는 상속될 수 없습니다. | |
ConstructionCall | IConstructionCallMessage 인터페이스를 구현하여 원격 개체에 대해 수행된 생성자 호출을 구성하는 요청 메시지를 만듭니다. | |
ConstructionResponse | IConstructionReturnMessage 인터페이스를 구현하여 원격 개체를 인스턴스화하기 위한 호출에 응답하는 메시지를 만듭니다. | |
Header | 호출에 out-of-band 데이터를 정의합니다. | |
InternalMessageWrapper | 클라이언트에서 서버로의 요청 또는 후속 응답을 위해 메시지 싱크 간에 전달할 원격 데이터를 래핑합니다. | |
LogicalCallContext | 원격 메서드를 호출하는 동안 실행 코드 경로로 전달되는 속성 집합을 제공합니다. | |
MethodCall | IMethodCallMessage 인터페이스를 구현하여 원격 개체에 대한 메서드 호출로 동작하는 요청 메시지를 만듭니다. | |
MethodCallMessageWrapper | IMethodCallMessage 인터페이스를 구현하여 원격 개체에 대해 메서드를 호출하는 요청 메시지를 만듭니다. | |
MethodResponse | IMethodReturnMessage 인터페이스를 구현하여 원격 개체에 대한 메서드 응답으로 동작하는 메시지를 만듭니다. | |
MethodReturnMessageWrapper | IMethodReturnMessage 인터페이스를 구현하여 원격 개체에 대해 수행된 메서드 호출에 대한 응답으로 동작하는 메시지를 만듭니다. | |
OneWayAttribute | 반환 값과 out 또는 ref 매개 변수를 사용하지 않고 단방향으로 메서드를 마스크합니다. | |
RemotingSurrogateSelector | MarshalByRefObject에서 파생되는 개체를 serialize하는 데 사용할 수 있는 원격 서로게이트를 선택합니다. | |
ReturnMessage | 원격 개체에서 메서드 호출에 대한 응답으로 반환되는 메시지를 보유합니다. |
인터페이스
인터페이스 | 설명 | |
---|---|---|
ILogicalThreadAffinative | LogicalCallContext의 AppDomain에서 전파되는 개체를 표시합니다. | |
IMessage | 서로 협력하는 메시지 싱크 간에 보낸 통신 데이터가 들어 있습니다. | |
IMessageCtrl | IMessageSink.AsyncProcessMessage를 사용하여 디스패치된 비동기 메시지를 제어하는 방법을 제공합니다. | |
IMessageSink | 메시지 싱크에 대한 인터페이스를 정의합니다. | |
IMethodCallMessage | 메서드 호출 메시지 인터페이스를 정의합니다. | |
IMethodMessage | 메서드 메시지 인터페이스를 정의합니다. | |
IMethodReturnMessage | 메서드 호출 반환 메시지 인터페이스를 정의합니다. | |
IRemotingFormatter | 모든 포맷터에 대해 RPC(원격 프로시저 호출) 인터페이스를 제공합니다. |
대리자
대리자 | 설명 | |
---|---|---|
HeaderHandler | deserialize하는 동안 스트림의 헤더를 처리할 메서드를 나타냅니다. | |
MessageSurrogateFilter | MarshalByRefObject 클래스에 대해 ObjRef를 만드는 동안 RemotingSurrogateSelector 클래스가 특정 IMessage 속성을 무시할지 여부를 결정합니다. |