Используйте в методе, зарегистрированном в LuaInterface - PullRequest
2 голосов
/ 03 сентября 2011

Я интегрирую LuaInterface в программу ac #, используя LuaInterface.Я хочу иметь возможность писать сценарии, которые могут обращаться к методам C # в программе.

Методы, к которым он обращается, находятся в отдельных "подсистемах", и я хотел, чтобы метод Lua определил подсистему, а затем методс помощью .в качестве разделителя.например, SubsystemName.MethodName

, но при попытке регистрации метода возникает исключение.Я изменил его на _, и он отлично работает.Есть ли способ заставить его работать?Программа имеет другие интерфейсы для вызова этих методов, таких как JSON-RPC через HTTP, и они используют.обозначение, поэтому хотелось бы, чтобы оно было последовательным

Ответы [ 2 ]

3 голосов
/ 03 сентября 2011

Вы можете определить свои методы, используя _ в качестве разделителя в вашем .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 из списка классов / методов.

0 голосов
/ 03 сентября 2011

Имена участников не могут содержать . в .NET.

...