Исключение при передаче аргументов из Lua скрипта в C# посредством LuaInterface

Рейтинг: 0Ответов: 2Опубликовано: 24.12.2014

Есть класс на C# с методом, принимающим "(params objects[] args)", и Lua-скрипт, передающий в этот метод два параметра, однако каждый раз вызывается исключение LuaInterface.LuaException: invalid arguments to method.

Я в тупике, метод весьма важный в классе, я бы сказал ключевой. Как заставить передавать массив нетипизированных аргументов из Lua в C#?

Ответы

▲ 2Принят

С точки зрения фреймворка, params игнорируется, и метод ожидает один аргумент — массив объектов. Возможно, проблема именно в этом. Попробуйте запаковать аргументы в массив на уровне Lua и передать как один аргумент.


Вот ещё по теме, может быть, будет полезно: https://code.google.com/p/luainterface/issues/detail?id=18

▲ 1

Спасибо, @VladD! Так и сделал и только сейчас прочитал совет:):

public bool KillFromList(LuaTable ProcNames)
    {
        Log.WriteToLog("Попытка завершить группу процессов");
            foreach (DictionaryEntry proc in ProcNames)
            {
                try
                {
                    KillAll(proc.Value.ToString());
                    Log.WriteToLog("Завершен "+proc.Value.ToString());
                } catch (Exception e) {
                    Log.WriteToLog("Не удалось завершить "+proc.Value.ToString()+e.Message);
                    return false;
                }
            }
        return true;
    }