2

我不明白为什么我对这条线有异常:

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 语句中的条件为假。

4

1 回答 1

1

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

于 2012-07-07T19:53:14.960 回答