C#脚本在Java中编写

Gai*_*sei 6 c# java scripting

我知道我可以使用Lua Script文件通过使用像LuaJava这样的库来操作Java对象.我有这个使用C#脚本的想法〜

是否可以在Java中运行C#脚本?

Jus*_*tin 6

理论上,是的 - 你当然可以在.Net应用程序中执行此操作,并且有Java/.Net interops.

通常情况下,Java/C#interops是通过P/Invoke或COM执行的 - 对于这类事情来说都非常麻烦,所以实际上这可能不会像你想象的那样整齐地工作.

如果你想这样做,我可能会建议您在C#中编写"脚本引擎"(即C#编译器的包装器),然后通过interops将它暴露给Java域,例如:

public ScriptResult(string Script)
{
    // Implemented in .Net
    // Script is a string containing the C# code to execute
}
Run Code Online (Sandbox Code Playgroud)

然后,您需要仔细考虑C#脚本如何能够访问任何Java-land功能,我想最好的方法是实现一个通过interops调用Java对象的.Net包装类.

在.Net应用程序中使用C#作为脚本语言非常简单 - 有关信息,请参阅: