Я до сих пор не уверен, почему вы не можете просто создать нужный делегат напрямую, без размышлений, но если вам действительно нужно , чтобы получить MethodInfo
, попробуйте сделать что-то вроде этого:
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
Thingy t = DoStuff;
var mi = t.Method;
}
private delegate void Thingy(object sender, EventArgs e);
private static void DoStuff(object sender, EventArgs e)
{
}
}
То есть используйте свой собственный локально определенный делегат, который соответствует определению другого делегата, создайте его экземпляр непосредственно в своем коде и затем извлеките MethodInfo
из этого экземпляра.
Thisкод будет использовать маркер метода для идентификации DoStuff
, а не его имени, поэтому он должен пережить запутывание без проблем.