gpt4 book ai didi

c# - 如何在 .NET 和 Java 之间创建跨平台进程间通信?

转载 作者:搜寻专家 更新时间:2023-11-01 01:57:52 27 4
gpt4 key购买 nike

我想开发某个插件/扩展,它需要在 eclipse 中运行并且必须与另一个 (java) 插件集成,但它必须从 .NET 程序集收集数据(使用 mono's cecil )。

所以我的问题是我应该如何在 Java 代码和 .NET 之间创建这种关系?我知道我可以使用 mono 在例如 Linux 上运行 .net 应用程序,但我有两个问题,我希望 Java 插件启动 .NET 应用程序,第二个问题如何让 Java 插件进行某些调用.NET 应用程序。

对于这两个应用程序之间的这种通信,我希望独立于平台,以便相同的二进制文件可以在 Windows、OSX 和 Linux 中运行。另一个可能重要的事实是调用的结果可能包含相当大的对象集合。

或者在 java 中托管一个 .NET 程序集并直接调用它可能会更好/可能?

更新:我认为理想的答案将解决以下问题:

  • 如何从 Java 端启动/调用 .NET 程序集/应用程序。 (跨平台)
  • 如何与 .NET 程序集通信
  • 这些选择对可修改性有何影响

最佳答案

应用程序之间的通信。

如何让 java 应用程序与 .net 应用程序通信

交通

如何在 java 和 .net 应用程序之间传输信息。

  • 套接字 - 连接可以保持打开状态,双方都可以发送内容(= 充当客户端)
  • WebServices - 没有连接保持打开状态,事件处理效果不佳

序列化

如何将对象转换成易于运输的东西。

  • 纯 XML - 易于上手。 java 和 .net 都有很好的 XML 支持
  • SOAP - 如果您想公开一个 API 供所有人使用,这是一个很好的选择。有点复杂。
  • Protobof - Google 的序列化协议(protocol)。存在许多不同的实现。
  • 自定义二进制序列化 - 构建您自己的序列化库

如何从 java 加载 .net 程序集

在单声道中运行 java 应用程序 ;)

http://www.ikvm.net/

关于c# - 如何在 .NET 和 Java 之间创建跨平台进程间通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4041526/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com