繁体   English   中英

反射和远程如何在内部工作?

[英]How do reflection and remoting work internally?

我很想知道 .net 中的反射和远程处理如何在内部工作。 我还听说 .net 可以使用远程处理与用其他语言(例如 Java)编写的应用程序进行通信。 这是如何运作的?

这可能是一个很大的问题,因此简要涉及每个问题的答案是合理的。

远程处理通过拦截对某些对象( MarshalByRefObject )的调用来工作,并改为执行 RPC 调用; 本质上,调用方的 object 只是原始 AppDomain/machine/etc 中真实object 的轻量级代理。 arguments 和结果被传输(再次考虑MarshalByRefObject - 否则使用BinaryFormatter序列化值)。

反射深入核心运行时,并提供对底层类型定义的访问。 这可能部分是因为 .NET 语言下的 IL 在原始代码方面非常具有表现力。

但是,我个人不知道通过远程访问 java 的任何方式。 这可能是可能的,但使用的格式是(AFAIK)专有的。 一般而言,此类调用更可能采用 SOA 调用的形式,例如 web-services(在 SOAP 或 POX 上),或其他开放标准,例如使用 Z0ECD11C1D7A287401D14ZZZ 序列化的消息,例如使用 Z0ECD11C1D7A287401D14ZZZ 格式变体“8A23BBD7A2”对于 C# 和 java)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM