c# - 使用 。在使用 LuaInterface 注册的方法中

标签 c# .net-4.0 lua luainterface

我正在使用 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/

相关文章:

c# - 是否可以从 Visual Studio 中复制代码并将格式化的代码粘贴到 OneNote 中?

c# - 如何使用组织身份验证从 Blazor Server 中的身份获取用户属性

c# - 匿名委托(delegate)关闭(或者为什么这样做有效)?

.net - ASPNET编译器错误ASPCONFIG : Could not load file or assembly 'Microsoft.VisualBasic.Activities.Compiler' or one of its dependencies

c++ - 将 C++ 类与 LUA 表连接

C# WriteDocType 生成不正确的 PList 文档类型

regex - MSBuild FileUpdate 目标的 ReplacementText 字符串中的双引号出现问题

oop - 函数如何进入 Lua 中的表?

binding - C 函数中的 D 回调

c# - DataTable linq查询按列分组