문제

.NET의 반사와 원격이 내부적으로 어떻게 작동하는지 궁금합니다. 또한 .NET은 원격을 사용하여 다른 언어 (예 : Java)로 작성된 응용 프로그램과 통신 할 수 있다고 들었습니다. 그게 어떻게 작동합니까?

이것은 아마도 큰 질문이므로 각 질문에 대해 간단히 다루는 대답은 합리적입니다.

도움이 되었습니까?

해결책

원격은 특정 객체에 대한 호출을 가로 채어 작동합니다 (MarshalByRefObject), 대신 RPC 호출을 수행함으로써; 본질적으로 발신자의 객체는 단지 가벼운 대리입니다. 진짜 원래의 appDomain/machine/etc에서 객체. 논쟁과 결과가 전달됩니다 (다시, MarshalByRefObject 고려 - 그렇지 않으면 사용하여 BinaryFormatter 값을 직렬화하려면).

반사는 핵심 런타임에 깊이 구축되며 기본 유형 정의에 대한 액세스를 제공합니다. .NET 언어 아래의 IL이 원래 코드 측면에서 상당히 표현력이 있기 때문에 부분적으로 이는 아마도 이는 아마도 아마도 이는 아마도 부분적으로 일 수 있습니다.

그러나 나는 개인적으로 Java를 통해 이야기하는 방법을 개인적으로 알지 못합니다. 가능할 수 있지만 사용 된 형식은 (AFAIK) 독점입니다. 일반적으로 이러한 통화는 웹 서비스 (SOAP 또는 POX)와 같은 SOA 통화 형태 또는 JSON 또는 "프로토콜 버퍼"(오픈 소스 와이어 형식”으로 직렬화 된 메시지와 같은 기타 공개 표준을 취할 가능성이 더 높습니다. C# 및 Java의 변형으로).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top