Re[3]: Delegates: Как получить, имея следующее ...
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 23.12.03 12:55
Оценка: -1
Здравствуйте, sing, Вы писали:

S>Здравствуйте, Serginio1, Вы писали:


S>>http://www.rsdn.ru/Forum/Message.aspx?mid=408345&only=1
Автор: Serginio1
Дата: 13.10.03


S>Спасибо, но проблема в другом.

S>Нет метода CreateDelegate с параметром MethodInfo для нестатического метода. Просто по имени метода создать делегат не получится, потому как у меня несколько методов с одинаковыми именами типа
S>
S>object ExecParticular(string name, object param)
S>object ExecParticular(string name, string param)
S>object ExecParticular(string name, Delegate param)
S>

S>а сигнатура делегата объявлена как object(object, object)
S>вот руками к такому типу привести не проблема, но в рантайме только по MethodInfo и ref holderObject не могу
Создай 3 делегата. Пойми если ты хочешь использовать некий общий делегат и вызов через DinamicInvoke, то от отображения ты не уйдешь, только типизация тебя спасет.
А если ты читал более досконально, то в делегате уже заложены все типы параметров и будет для него выдаваться адресс нужной функции
SetInt d3=(SetInt) Delegate.CreateDelegate(typeof(SetInt),val,"set_MyValue");
typeof(SetInt) !!!!!

Либо создай три функции с одинаковыми параметрами но с разными именами.
Суть в том, что делегату нужны только параметры и адресс функции (и ссылка на объект для объектных методов), что бы нужное загнать в стек и вызвать Call
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.