我正在使用EXI
,它将XML
编码为二进制格式并返回。
为此,我使用的是开源JAVA工具ExiProcessor
,这是一个可执行的JAR文件,这使得这个过程非常简单。由于我想将它与C#
一起使用,我需要在这两者之间交换数据。
最简单的方法是将C#中的XML数据写入文件,使用ExiProcessor
读取此文件然后反过来。但这并不是很快。
因此我想知道有什么替代方案。我读到,从.NET Framework 4开始,您可以使用MemoryMappedFiles
。我看了一下,但似乎它们只适用于使用.NET Framework 4的两个应用程序?
还有其他方法可以加快这个过程吗?
作为后备,我可以使用JAVA源代码并编写自己的应用程序,但我更愿意按原样使用ExiProcessor
。
答案 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/
希望这有帮助!!