Страница 1 из 1

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

СообщениеДобавлено: 01 апр 2018, 16:35
SuKioto
здравствуйте!
кто шарит как из methodinfo высосать сам метод?
т.е. у меня есть словарь <string, action<int>> и массив methodinfo.
как все methodinfo из массива передать в словарь? где key - имя метода.
гуглил. толком ничего не нашел.
заранее спасибо!

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

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

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

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

Подобные вопросы обычно задают в stackoverflow и в более специализированные ресурсы.

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

СообщениеДобавлено: 01 апр 2018, 17:37
SuKioto
спасибо! работает. нужно было еще явно указать приведение.
Синтаксис:
Используется csharp
foreach (var item in methodInfos)
            methods.Add(item.Name.ToLower(), (Action<int>) Delegate.CreateDelegate(typeof(Action<int>), this, item));