2

我正在使用 LuaInterface 将 LuaInterface 集成到 ac# 程序中。我希望能够编写可以在程序中访问 C# 方法的脚本。

它正在访问的方法位于单独的“子系统”中,我想让 Lua 方法定义子系统,然后使用 . 作为分隔符。例如 SubsystemName.MethodName

但是当我尝试注册该方法时会引发异常。我已将其更改为 _ 并且效果很好。有没有办法让它与.?一起工作?该程序有其他接口用于调用这些方法,如通过 HTTP 的 JSON-RPC,这些使用 . 符号所以希望它是一致的。

4

2 回答 2

3

您可以在 .NET 代码中使用分隔符来定义您的方法_,例如SubsystemName_MethodName. 然后创建一个简单的 Lua 模块,它大致执行以下操作:

local YourClass = luanet.import_type("Your.Binding.Class")

SubsystemName = {} -- create a global table
SubsystemName.MethodName = YourClass.SubsystemName_MethodName

这将允许您SubsystemName.MethodName在 Lua 中使用。

您可以使用代码生成器从类/方法列表中创建 Lua 代码,而不是手动执行此操作(这可能很乏味且容易出错)。

于 2011-09-03T11:34:13.823 回答
0

成员名称不能包含.在 .NET 中。

于 2011-09-03T10:18:25.270 回答