我很好奇知道.net中的反射和远程处理如何在内部工作.我还听说.net可以使用远程处理与以其他语言(例如Java)编写的应用程序进行通信.这是如何运作的?
这可能是一个大问题,因此简短地涉及每个问题的答案是合理的.
最佳答案
远程处理通过截取对某些对象(MarshalByRefObject)的调用,然后执行RPC调用来实现.本质上,调用者处的对象只是对原始AppDomain / machine / etc中真实对象的轻量级代理.传递参数和结果(再次考虑MarshalByRefObject-否则使用BinaryFormatter序列化值).
反射内置于核心运行时中,并提供对基础类型定义的访问.这可能部分是因为.NET语言下的IL就原始代码而言非常具有表现力.
但是,我个人不知道通过远程处理Java可以进行任何交谈.可能可以,但是使用的格式是(AFAIK)专有的.通常,此类调用更可能采用SOA调用的形式,例如Web服务(在SOAP或POX上),或其他开放标准,例如使用JSON或“协议缓冲区”序列化的消息(一种开放源代码格式)以及C#和Java的变体).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。