MarshalByRefObject의 목적은 무엇입니까?
답변
원격; 즉, 개체를 직렬화하고 전송하는 대신 AppDomains 또는 시스템간에 개체가 한쪽 끝에 있고 다른 쪽 끝에 프록시가 만들어집니다. 프록시에 대한 모든 메서드 호출이 가로 채고 호출 이 RPC wiki , msdn 으로 전송되어 메서드가 다른 컴퓨터에서 실행되도록합니다 (일반적으로 인수 및 반환 값 직렬화).
참고 : 이로 인해 예기치 않게 “수다스러운”인터페이스가 발생할 수 있습니다. 객체 / 프록시 / RPC 접근 방식은 이제 명시적인 서비스 경계 가있는 접근 방식보다 덜 선호됩니다 . Microsoft는 이제 원격 대신 WCF wiki , msdn을 권장 합니다.
답변
의 또 다른 중요한 용도는 MarshalByRefObject
원격 싱크 체인을 통해 AOP를 구현 하는 것입니다 .
에서 파생 된 ContextBoundObject
(자체에서 파생 된 MarshalByRefObject
) 개체가있는 경우 동일한 AppDomain 내의 별도의 컨텍스트에서 인스턴스화하고 개체 간의 통신이 자동으로 Remoting 프록시 시스템을 통과하도록하여 사용자 지정 싱크를 Remoting 싱크에 연결할 수 있습니다. 체인.
이를 통해 궁극적으로 객체에 대한 메서드 호출을 ‘장식’하고 로깅 및 보안 등과 같은 교차 절단 서비스를 구현할 수 있습니다.
답변
답변
호출자 응용 프로그램의 응용 프로그램 도메인 외부에있는 모든 개체는 원격 개체로 간주되어야합니다. MarshalByRefObject
Class 에서 파생되어야하는 원격 개체입니다 . 모든 개체는에서 파생하여 원격 개체로 변경할 수 있습니다 MarshalByRefObject
. 상속 되지 않는 개체를 비 원격 개체 MarshalByRefObject
라고 합니다.
답변
