【发布时间】:2014-04-11 15:26:14
【问题描述】:
首先,我想提前申请我的英语。
我的问题特别是关于我需要在 C# 应用程序中拥有什么才能解释提供给所述应用程序的 Lua 脚本。 Lua 脚本必须能够访问用 C# 编写的类。
在搜索堆栈溢出以寻找答案后,我认为处理该主题的问题已经过时(我认为在动态语言运行时成为 .NET 框架的一部分之前就提出了这些问题,我认为现在事情会变得更简单我们有 DLR)。
基本上,我想做的就是这个
TypeThatExecutesLua.MethodToLoadLuaScript(script.lua);
TypeThatExecutesLua.Execute();
现在,假设我们不在乎 script.lua 返回什么。但是在某些情况下,第二行会是这样的:
dynamic result = TypeThatExecutesLua.Execute();
或者这个: 动态结果; TypeThatExecutesLua.Execute(输出结果);
同样,如果可能的话,我希望能够将参数传递给脚本(不确定在这种情况下参数是否是正确的词,我对脚本知之甚少),如下所示:
int argument
TypeThatExecutesLua.Execute(argument);
这可能是一个非常基本的问题,但我非常感谢能真正向我解释如何做到这一点的答案,而不是指向某个页面的链接,因为我缺乏理解大部分材料的基本知识到目前为止,我是通过网络搜索发现的(我相当擅长 C#,但这超出了语言本身的范围)。
最后一点,我想说的是,即使 Lua 是我的目标语言,如果解决方案与任何语言相似或相同,只是在项目中下载和引用哪个 dll 以及dll本身的接口,我想知道。
【问题讨论】:
-
你看过 NLua (components.xamarin.com/gettingstarted/NLua) 吗?如果是这样,在lua-users.org/wiki/LuaImplementations的 .NET 部分中提到的任何其他选项?
-
另见NLuaBox。
标签: c# lua dynamic-language-runtime