在C#和可执行JAR之间交换数据的最佳方式

时间:2014-09-16 09:12:05

标签: java c# .net ipc executable-jar

我正在使用EXI,它将XML编码为二进制格式并返回。

为此,我使用的是开源JAVA工具ExiProcessor,这是一个可执行的JAR文件,这使得这个过程非常简单。由于我想将它与C#一起使用,我需要在这两者之间交换数据。

最简单的方法是将C#中的XML数据写入文件,使用ExiProcessor读取此文件然后反过来。但这并不是很快。

因此我想知道有什么替代方案。我读到,从.NET Framework 4开始,您可以使用MemoryMappedFiles。我看了一下,但似乎它们只适用于使用.NET Framework 4的两个应用程序?

还有其他方法可以加快这个过程吗?

作为后备,我可以使用JAVA源代码并编写自己的应用程序,但我更愿意按原样使用ExiProcessor

2 个答案:

答案 0 :(得分:1)

对于像这样的混合环境,Apache Thrift通常是一个不错的选择。 Thrift专为轻量级,快速且易于使用的RPC(和IPC)解决方案而设计。除此之外,它还支持Java和C#。也许值得一瞧。

如果你想坚持使用MMF,只需使用Thrift的序列化部分和读/写缓冲区或流的日期即可。你不必使用RPC的东西。

点击this question进行更详尽的概述,以及一些指向其他资源的链接,以帮助您快速入门。

答案 1 :(得分:0)

我不太确定,但如果您正在寻找使用jar的方法,

您可以尝试转换jar

http://www.ikvm.net/userguide/tutorial.html

或者您可以使用像

这样的桥梁

http://jni4net.sourceforge.net/

希望这有帮助!!