C# Lua和Luainterface,是否使用Lua中未注册的类?

C# Lua和Luainterface,是否使用Lua中未注册的类?,c#,class,lua,bind,C#,Class,Lua,Bind,我在用LuaInterface做C# 在我的C#项目中,我得到了Program.cs文件 它使用名称空间测试,该类称为Program 在类程序中,我得到了PrintTest()方法 我如何从Lua获得这种方法? 我试过这样的方法: luanet.load_assembly("YourAssembly") local Test = luanet.import_type("Test.Program") local test = Test() test.PrintTest() luanet.Tes

我在用LuaInterface做C#

在我的C#项目中,我得到了Program.cs文件

它使用名称空间测试,该类称为Program

在类程序中,我得到了PrintTest()方法

我如何从Lua获得这种方法? 我试过这样的方法:

luanet.load_assembly("YourAssembly")
local Test  = luanet.import_type("Test.Program")
local test = Test()
test.PrintTest()
luanet.Test.Program:PrintTest()

但lua说“没有这样的方法”

我一直在研究这个线程:并且像他一样创建了一个表单,所以问题只出现在我自己的自定义类中



好的。问题似乎在于PrintTest方法是静态的。如果我让它成为非静态的,它会工作,但是如果我想让它成为静态的,我该怎么做?

它通常看起来像这样:

luanet.load_assembly("YourAssembly")
local Test  = luanet.import_type("Test.Program")
local test = Test()
test.PrintTest()

它通常看起来像这样:

luanet.load_assembly("YourAssembly")
local Test  = luanet.import_type("Test.Program")
local test = Test()
test.PrintTest()

尽管这条线已经很老了,但我还是有同样的问题,并且能够找到一个令人满意的答案

从LuaInterface 1.5.1开始,要对类型调用静态方法,只需使用点运算符

例:


参考资料:

尽管这条线索已经过时,但我还是有同样的问题,并且能够找到满意的答案

从LuaInterface 1.5.1开始,要对类型调用静态方法,只需使用点运算符

例:


参考资料:

忘了说PrintTest方法是静态的。我正在尝试你发布的代码,但第2行出现错误。它说没有这样的类型。您是否调整了第1行以包含程序集的名称?您是通过LuInterface runner加载这个,还是在应用程序中托管LuaInterface?忘了说PrintTest方法是静态的。我正在尝试你发布的代码,但第2行出现错误。它说没有这样的类型。您是否调整了第1行以包含程序集的名称?您是通过LuiInterface runner加载此文件,还是在应用程序中托管LuaInterface?