S>Спасибо, но проблема в другом. S>Нет метода CreateDelegate с параметром MethodInfo для нестатического метода. Просто по имени метода создать делегат не получится, потому как у меня несколько методов с одинаковыми именами типа S>
S>а сигнатура делегата объявлена как object(object, object) S>вот руками к такому типу привести не проблема, но в рантайме только по MethodInfo и ref holderObject не могу
Создай 3 делегата. Пойми если ты хочешь использовать некий общий делегат и вызов через DinamicInvoke, то от отображения ты не уйдешь, только типизация тебя спасет.
А если ты читал более досконально, то в делегате уже заложены все типы параметров и будет для него выдаваться адресс нужной функции
SetInt d3=(SetInt) Delegate.CreateDelegate(typeof(SetInt),val,"set_MyValue");
typeof(SetInt) !!!!!
Либо создай три функции с одинаковыми параметрами но с разными именами.
Суть в том, что делегату нужны только параметры и адресс функции (и ссылка на объект для объектных методов), что бы нужное загнать в стек и вызвать Call
и солнце б утром не вставало, когда бы не было меня
Хочу получить делегат ExecDelegate для ExecParticular. Если прямо в коде прописать, то проблем нет, а в рантайме . Delegate.CreateDelegate()с параметром MethodInfo работает только для статических методов
Здравствуйте, sing, Вы писали:
S>Столкнулся с бедой следующего рода.
S>Имею MethodInfo метода и ссылку на экземпляр класса этого метода. Хочу в runtime получить делегат. Вроде все есть для этого, но ...
S>Вот тип делегата S>
S>Хочу получить делегат ExecDelegate для ExecParticular. Если прямо в коде прописать, то проблем нет, а в рантайме S> . Delegate.CreateDelegate()с параметром MethodInfo работает только для статических методов
S>Как быть?
Спасибо, но проблема в другом.
Нет метода CreateDelegate с параметром MethodInfo для нестатического метода. Просто по имени метода создать делегат не получится, потому как у меня несколько методов с одинаковыми именами типа
а сигнатура делегата объявлена как object(object, object)
вот руками к такому типу привести не проблема, но в рантайме только по MethodInfo и ref holderObject не могу
Re[3]: Delegates: Как получить, имея следующее ...
S>Спасибо, но проблема в другом. S>Нет метода CreateDelegate с параметром MethodInfo для нестатического метода. Просто по имени метода создать делегат не получится, потому как у меня несколько методов с одинаковыми именами типа