反射找不到已实现的方法
本文关键字:方法 实现 找不到 反射 | 更新日期: 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非常相似,我很确定同样的限制也适用于那里。