Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有NLua的C#类实例_C#_Lua_Nlua - Fatal编程技术网

具有NLua的C#类实例

具有NLua的C#类实例,c#,lua,nlua,C#,Lua,Nlua,我正在尝试使用NLua 这是我的密码 class Program { public static void Main (string[] args) { Lua lua = new Lua(); lua.LoadCLRPackage(); lua.DoString(@" import ('LuaTest.exe', 'LuaTest')

我正在尝试使用
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.Exceptions.LuaScriptException”类型的未处理异常 在NLua.dll中发生其他信息:[字符串“chunk”]:3: 尝试调用全局“Test”(一个nil值)

这有点奇怪,因为这是他们的示例代码?

谢谢你们的帮助

有点咆哮:

如果我做错了什么,请告诉我。 顺便说一句,我使用的是纯C#build,不确定这是否会造成不同,我没有看到任何关于它的警告?但整件事似乎都没有记录在案

如果有人对一个更好的纯C#Lua库有什么建议,我洗耳恭听。

你错过了一个好机会


对此我很抱歉。自述文件是错误的

只需删除“.exe”和shuold即可

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


我已经修复了github.com/nlua/nlua的自述文件

您是否将当前的可执行文件导入了Lua系统?这是在示例代码中:state.DoString(@“import('MyAssembly.exe','MyNamespace')import('System.Web'))@RonBeyer是的,我想LuaTest.exe是我的程序集,LuaTest是名称空间。对不起,我错过了你发布的代码中的那一行,这是我唯一的想法。@RonBeyer别担心,我整天都在为这件事埋头苦干,任何事情都是有帮助的:)目前我必须做一些相关的工作。。。注册一些返回所需对象的新实例的C#函数。这很恶心,但我想不出这个。嗯,不确定是不是这样,我只是把它命名为“Test”作为一个例子,它不适用于任何我命名的类、程序集或命名空间。。。但我明天会试试:)我现在在工作,所以我一到家就试试,我也无法让它与库一起工作,例如:“system.net”的想法?IIRC程序集加载区分大小写,使用“system.net”代替标题我很高兴解决方案是简单地删除.exe.)非常感谢。对于其他库来说,这是可行的:import('System','System.Net.Sockets')对于系统库来说都很好,但是对于我导入的自定义库来说就不好了。但这仍然是向前迈出的一大步:)请你也修复一下nlua.org的主页好吗?同样的“bug”出现在这里的示例中,它导致我犯同样的错误。导入('MyAssembly.exe','MyNamespace')。谢谢,继续努力!
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");
    }
}