Здравствуйте, 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