C#中通过方法名构建MethodInfo?
这个得通过委托实现。Action或者Func。
一段示例代码如下:
MethodInfo method = (new Func<int, string>(i => i.ToString())).Method;
使用过程中要注意函数的重载。可以参考如下链接: https://docs.microsoft.com/en-us/dotnet/api/system.delegate.method
思路说明
委托(Action/Func)的 Method 属性就是其目标方法的 MethodInfo,因此可以借助 lambda 表达式"以代码取方法信息"。
- 示例:MethodInfo m = ((Func<int, string>)(i => i.ToString())).Method;
- 注意方法重载:委托签名要能唯一匹配到目标重载。
- 若方法有多个重载,可改用 typeof(T).GetMethod(名称, 参数类型...) 显式指定。