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

我想开发一个特定的插件/扩展,它需要在eclipse中运行并且必须与另一个(java)插件集成,但它必须从.NET程序集中收集数据(使用mono’s cecil).所以我的问题是如何在Java代码和.NET之间创建这种关系?我知道我可以使用m...

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

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

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

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

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

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

解决方法:

应用之间的通信.

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

运输

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

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

序列化

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

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

如何从java加载.net程序集

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

http://www.ikvm.net/

本文标题为:c# – 如何在.NET和Java之间创建跨平台进程间通信?

基础教程推荐