1

我使用 C# 的 LuaInterface。

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

它使用命名空间 Test,该类称为 Program。

在类 Program 中,我得到了 PrintTest() 方法。

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

luanet.Test.Program:PrintTest();

但是lua说“没有这种方法”。

我一直在看这个线程:LuaInterface - 如何限制对 .Net 类的访问?并设法像他一样创建了一个表单,所以问题只发生在我自己的自定义类中。


好的。问题似乎是 PrintTest 方法是静态的。如果我使它成为非静态的,它可以工作,但是如果我希望它是静态的,我该怎么办?

4

2 回答 2

1

尽管这个线程的年龄,我有同样的问题,并且能够找到一个令人满意的答案。

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

前任:

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

参考:https ://github.com/megax/LuaInterface

于 2013-03-26T01:39:41.720 回答
0

它通常看起来像这样:

luanet.load_assembly("YourAssembly")
local Test  = luanet.import_type("Test.Program")
local test = Test()
test.PrintTest()
于 2012-06-18T03:56:27.720 回答