C# Type.GetMethod始终返回null
我想从调用方法中获取MethodInfo对象,以确定该方法上是否设置了特殊属性 调用Run()方法的Programm类 我要在其中确定自定义属性的类C# Type.GetMethod始终返回null,c#,reflection,methodinfo,stack-frame,C#,Reflection,Methodinfo,Stack Frame,我想从调用方法中获取MethodInfo对象,以确定该方法上是否设置了特殊属性 调用Run()方法的Programm类 我要在其中确定自定义属性的类 public class RestHandler { public void Handler(Type t) { StackFrame frame = new StackFrame(1); var method = frame.GetMethod();
public class RestHandler
{
public void Handler(Type t)
{
StackFrame frame = new StackFrame(1);
var method = frame.GetMethod();
MethodInfo methodInfo = t.GetMethod(method.Name, BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
var attributes = methodInfo.GetCustomAttributes<RestAttribute>();
}
}
我这里的问题是MethodInfo对象(MethodInfo
)始终为空,即使堆栈框架中的方法对象设置正确。
属性method.Name
返回调用方法的正确名称。
为什么
methodInfo
对象总是空的?这是一个私有方法:
static void Run()
添加BindingFlags.NonPublic以通过反射访问它
MethodInfo methodInfo = t.GetMethod(method.Name, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
@克里斯,如果答案是这样的话,你能帮我标记一下吗?谢谢
static void Run()
MethodInfo methodInfo = t.GetMethod(method.Name, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);