反射找不到已实现的方法

本文关键字:方法 实现 找不到 反射 | 更新日期: 2023-09-27 18:32:04

我不知道为什么我得到关于这一行的异常:

public void DoIt(object sender, MyEventArgs e) {
 //... other stuff
 Type type = sender.GetType(); 
 if (type.GetMethod(e.ActionName, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) == null)
    throw new NotSupportedException("Method: " + e.ActionName + " not implemented");
 type.InvokeMember(e.ActionName, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.Instance, null, sender, e.Parameters.ToArray());
}

我仍然收到有关找不到方法的错误,但我确定这是因为调用之前 if 语句中的条件是错误的。

反射找不到已实现的方法

实际上,这是一项安全功能。我以前在 Silverlight 中遇到过这种情况 - 您根本无法反映该平台上的私人类成员。由于Windows Phone与Silverlight非常相似,我很确定同样的限制也适用于那里。