【发布时间】:2015-04-27 23:59:46
【问题描述】:
我正在尝试使用 NLua 在 lua 文件中创建 C# 类的实例
这是我的代码。
class Program
{
public static void Main (string[] args)
{
Lua lua = new Lua();
lua.LoadCLRPackage();
lua.DoString(@"
import ('LuaTest.exe', 'LuaTest')
test = Test()
");
}
}
public class Test
{
public Test()
{
Console.WriteLine("IT WORKED");
}
}
但这似乎不起作用,我环顾四周并尝试了许多不同的方法。我尝试过的大多数方法的错误是:
“NLua.Exceptions.LuaScriptException”类型的未处理异常 发生在 NLua.dll 附加信息:[string "chunk"]:3: 尝试调用全局“测试”(零值)
这有点奇怪,因为这是直接来自他们的示例代码? https://github.com/NLua/NLua
感谢大家的帮助。
有点咆哮:
如果我做错了什么,请告诉我。 附带说明一下,我使用的是纯 C# 构建,不确定这是否会有所不同,我没有看到任何警告?但整个事情似乎广泛无证......
如果有人对更好的纯 C# Lua 库有任何建议,我会全力以赴。
【问题讨论】:
-
你把当前的可执行文件导入到Lua系统了吗?这是在示例代码中: state.DoString (@" import ('MyAssembly.exe', 'MyNamespace') import ('System.Web') ");
-
@RonBeyer 是的,我认为 LuaTest.exe 是我的程序集,LuaTest 是命名空间。
-
对不起,我错过了你发布的代码中的那一行,这是我唯一的想法。
-
@RonBeyer 不用担心,我整天都在面对这个问题,任何事情都有帮助:)
-
暂时我将不得不做一些工作...注册一些返回我需要的对象的新实例的 C# 函数。这很恶心,但我无法弄清楚这一点。