首先,我想提前为我的英语道歉。
我的问题是关于在C#应用程序中需要哪些内容才能解释传递给该应用程序的Lua脚本。Lua脚本必须能够访问以C#编写的类。
在搜索堆栈溢出以获取答案后,我认为处理此主题的问题已过时(我认为它们是在动态语言运行时成为.NET Framework的一部分之前提出的,而且现在拥有DLR可能更简单)。
基本上,我想做的是这样的
TypeThatExecutesLua.MethodToLoadLuaScript(script.lua);
TypeThatExecutesLua.Execute();
现在,假设我们不关心script.lua返回什么值。但是有些情况下第二行代码会像这样:
dynamic result = TypeThatExecutesLua.Execute();
或者这样写: dynamic result; TypeThatExecutesLua.Execute(out result);
同样地,如果可能的话,我想要能够向脚本传递参数(不确定argument是否是这种情况下的正确词语,我对脚本知之甚少),就像这样:
int argument
TypeThatExecutesLua.Execute(argument);
这可能是一个非常基础的问题,但我真的希望得到一个能够详细解释如何做到这一点的答案,而不仅仅是一个链接,因为我缺乏理解我搜索到的大部分材料的基本知识(我相当擅长C#,但这超出了语言本身的范围)。最后,我想说的是,即使Lua是我的目标语言,如果解决方案与任何语言类似或相同,只是在项目中下载和引用哪些dll以及dll本身的接口等方面有所不同,我也想知道。