получить метод из methodinfo

Программирование на Юнити.

получить метод из methodinfo

Сообщение SuKioto 01 апр 2018, 16:35

здравствуйте!
кто шарит как из methodinfo высосать сам метод?
т.е. у меня есть словарь <string, action<int>> и массив methodinfo.
как все methodinfo из массива передать в словарь? где key - имя метода.
гуглил. толком ничего не нашел.
заранее спасибо!
SuKioto
UNIт
 
Сообщения: 86
Зарегистрирован: 21 июн 2016, 19:48

Re: получить метод из methodinfo

Сообщение Anonymyx 01 апр 2018, 16:48

Так вам надо создать делегат из MethodInfo т.е. Delegate.CreateDelegate().
Что-то в этом вроде:
foreach(var item in methodInfoArray)
dict.Add(item.name, Delegate.CreateDelegate(typeof(Action<int>), this, item);

this - экземпляр класса с которым связан делегат.

Все методы MethodInfo естественно должны иметь сигнатуру void (int).

Подобные вопросы обычно задают в stackoverflow и в более специализированные ресурсы.
Аватара пользователя
Anonymyx
Адепт
 
Сообщения: 1973
Зарегистрирован: 05 апр 2015, 15:55

Re: получить метод из methodinfo

Сообщение SuKioto 01 апр 2018, 17:37

спасибо! работает. нужно было еще явно указать приведение.
Синтаксис:
Используется csharp
foreach (var item in methodInfos)
            methods.Add(item.Name.ToLower(), (Action<int>) Delegate.CreateDelegate(typeof(Action<int>), this, item));
SuKioto
UNIт
 
Сообщения: 86
Зарегистрирован: 21 июн 2016, 19:48


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12