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

Dav*_*man 4 c# java mono cross-platform ipc

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

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

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

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

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

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

jga*_*fin 6

应用之间的通信.

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

运输

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

  • 套接字 - 连接可以保持打开,双方都可以发送内容(=充当客户端)
  • WebServices - 没有连接保持打开,事件处理不能很好地工作

序列化

如何将对象转换为易于运输的东西.

  • 简单的XML - 易于入门.java和.net都有很好的XML支持
  • SOAP - 如果您希望公开API供所有人使用,那就太好了.有点复杂.
  • Protobof - 谷歌序列化协议.很多不同的实现存在.
  • 自定义二进制序列化 - 构建您自己的序列化库

如何从java加载.net程序集

在mono中运行java应用程序;)

http://www.ikvm.net/