我正在使用 LuaInterface 将 LuaInterface 集成到 C# 程序中。我希望能够编写可以访问程序中的 C# 方法的脚本。
它正在访问的方法位于单独的“子系统”中,我想让 Lua 方法定义子系统,然后使用 .作为分隔符。 例如子系统名称.方法名称
但是当我尝试注册该方法时,这会引发异常。我已将其更改为 _ 并且效果完美。有没有办法让它与 . 一起工作?该程序还有其他接口(interface)用于通过 HTTP 调用这些方法,例如 JSON-RPC,并且这些接口(interface)使用 .符号,因此希望它保持一致。
最佳答案
您可以在 .NET 代码中使用 _
作为分隔符来定义您的方法,例如子系统名称_方法名称
。然后创建一个简单的 Lua 模块,大致执行以下操作:
local YourClass = luanet.import_type("Your.Binding.Class")
SubsystemName = {} -- create a global table
SubsystemName.MethodName = YourClass.SubsystemName_MethodName
这将允许您在 Lua 中使用 SubsystemName.MethodName
。
您可以使用代码生成器从类/方法列表创建 Lua 代码,而不是手动执行此操作(这可能很乏味且容易出错)。
关于c# - 使用 。在使用 LuaInterface 注册的方法中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7292503/