使用 NLua 的 C# class 实例

Instance of C# class with NLua

我正在尝试使用 NLua

在 lua 文件中创建 C# class 的实例

这是我的代码。

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");
    }
}

但这似乎行不通,我环顾四周并尝试了多种不同的方法。我尝试过的大多数方法的错误是:

An unhandled exception of type 'NLua.Exceptions.LuaScriptException' occurred in NLua.dll Additional information: [string "chunk"]:3: attempt to call global 'Test' (a nil value)

这有点奇怪,因为这是直接从他们的示例代码中提取出来的? https://github.com/NLua/NLua

感谢大家的帮助。

一点咆哮:

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

如果有人对更好的纯 C# 有任何建议 Lua 库,我洗耳恭听。

你错过了test annotations for your class and 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");
    }
}

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

只需删除“.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 的 README。com/nlua/nlua