2

我正在尝试在 lua 文件中创建 C# 类的实例NLua

这是我的代码。

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.dll 中发生了“NLua.Exceptions.LuaScriptException”类型的未处理异常附加信息:[string“chunk”]:3:尝试调用全局“Test”(一个 nil 值)

这有点奇怪,因为这直接来自他们的示例代码? https://github.com/NLua/NLua

谢谢你们的帮助。

一点咆哮:

如果我做错了什么,请告诉我。附带说明一下,我使用的是纯 C# 构建,不确定这是否有所不同,我没有看到任何警告?但整个事情似乎广泛无证......

如果有人对更好的纯 C# Lua 库有任何建议,我会全力以赴。

4

2 回答 2

2

我对此感到抱歉。自述文件错误。

只需删除“.exe”即可正常工作

class Program
{
    public static void Main (string[] args)
    {

        Lua lua = new Lua();
        lua.LoadCLRPackage();

        lua.DoString(@"
                        import ('LuaTest', 'LuaTest')
                        test = Test()
                    ");
    }
}

public class Test
{
    public Test()
    {
        Console.WriteLine("IT WORKED");
    }
}

https://github.com/NLua/NLua

我已经从 github.com/nlua/nlua 修复了 README

于 2015-04-27T15:59:46.807 回答
0

您缺少class 和 method测试注释

class Program
{
    public static void Main (string[] args)
    {

        Lua lua = new Lua();
        lua.LoadCLRPackage();

        lua.DoString(@"
                        import ('LuaTest.exe', 'LuaTest')
                        test = Test()
                    ");
    }
}
[TestFixture]
public class Test
{
    [Test]
    public Test()
    {
        Console.WriteLine("IT WORKED");
    }
}
于 2015-04-26T04:27:37.100 回答