有没有什么好的方法可以以非特定于语言的方式定义接口/类层次结构,然后以指定的语言生成相应的源代码?特别是,我需要针对 Java 和 C# 来创建一个相当全面的 API。我记得曾经在 SF 上看到过一篇帖子,其中的答案提到了一种“编译”为其他语言的编程语言 - 但我一直无法找到该帖子。这种语言可能是我正在尝试做的事情的解决方案。
有很多方法可以做你想做的事情。
例如,您可以考虑使用接口定义语言(IDL)。 Corba 的 IDL 允许您以语言中立的方式声明对象和接口。然后,这些 idl 文件通过 IDL 编译器运行,该编译器会根据您选择的语言输出适当的类、标头、存根、代理等。
例如 IIOP.NET 是 C# 的 Corba 实现。我不知道它有多好,但它有一个 IDL 编译器,可以输出 C# 类。 Java 有一个名为 idlj 的 IDL 编译器,作为 JDK 的一部分。
因此从理论上讲,您可以从相同的接口和类实现 C# 和 Java。
执行类似操作的另一种方法是利用可以从模型生成源代码的 UML 工具。
另一种选择是使用 WSDL / XSD 之类的东西来定义接口和类型,并从中生成存根。
看看IKVM.NET。有了它,您可以用 Java(或 JVM 语言)编写程序并将其转换为 .NET 程序集。因此,您的程序将同时拥有 JVM 和 .NET 版本。