1

是否可以使用 WCF 或任何用 C# .net 编写的类应用程序调用用 Java 编写的函数

是否可以通过使用 webOrb.. 我找不到足够的关于 Java 到 .Net 远程处理的信息。

4

2 回答 2

4

如果你想在 C# 和 Java 之间进行通信,你有几个选择。

最干净的:构建服务。

这假定您可以访问 C# 组件和 Java 组件的源代码。如果您想在 Java 中调用方法,您可以构建一个允许从 C# 客户端连接到 Java 服务的服务,然后该服务执行所需的功能,并将值返回给 C# 客户端. 一些简单的方法是构建RESTful 服务或使用Thrift。我建议您选择与此类似的解决方案。

最复杂的:Corba

Corba是为在不同计算机语言之间进行通信而定义的标准。大多数成熟的语言都支持它,但它有点不寻常,它的使用已经下降,有利于构建服务。这也假设可以访问两个源代码。您必须独立查找有关如何在 Java 和 C# 上使用 Corba 的信息。我真的建议不要这样做。

最脏但最快的:作为进程执行并解析输出

我真的不建议你这样做,除非你真的别无选择。这将需要从 C# 中执行 Java 程序。只有当您别无选择时,这才是一个不错的选择,因为您所拥有的只是一个可执行文件。如果是这种情况,您可以使用Process类来执行外部程序,向其发送参数,然后读取输出。请参阅此处提到的示例: 如何从 C# 启动进程?

但这有很多缺点,因为您必须考虑每个异常原因,确定这些情况的输出,然后确定如何解析该输出。如果程序有任何级别的复杂性,在你知道之前,你最终会得到难以维护的代码。

结论:构建服务

这可能是你最好的选择。构建一个公开 C# 客户端可以调用的 API 的服务。

于 2013-06-04T05:30:46.380 回答
1

我们正在使用JCOBridge包:它能够从 C#(.NET Core/Framework)创建对 Java API 的双向调用。Templates 上可用的模板是我们满足需求的良好起点。我们用几行代码就达到了目标。

于 2020-04-17T12:45:52.493 回答