Lua 和 Luainterface,使用来自 Lua 的未注册类
本文关键字:Lua 注册 Luainterface | 更新日期: 2023-09-27 18:37:26
Im 使用 LuaInterface for C#.
在我的 C# 项目中,我得到了文件程序.cs
它使用命名空间 Test,该类称为程序。
在类程序中,我得到了方法PrintTest()。
如何从 Lua 获得该方法?我试过这样的事情:
卢阿内特。Test.Program:PrintTest();
但Lua说"没有这样的方法"。
我一直在看这个线程:LuaInterface - 如何限制对 .Net 类的访问?并设法像他一样创建一个表单,所以问题只发生在我自己的自定义类上。
好。问题似乎是PrintTest方法是静态的。如果我让它成为非静态的,它可以工作,但如果我希望它是静态的,我该怎么办?
尽管这个线程很老,但我有同样的问题,并且能够找到一个满意的答案。
从 LuaInterface 1.5.1 开始,要在类型上调用静态方法,只需使用 dot 运算符即可。
前任:
luanet.load_assembly("AssemblyName")
local Test = luanet.import_type("Test.Program")
Test.PrintTest()
参考: https://github.com/megax/LuaInterface
它通常看起来像这样:
luanet.load_assembly("YourAssembly")
local Test = luanet.import_type("Test.Program")
local test = Test()
test.PrintTest()