我无法弄清楚为什么我对这一行有例外:
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语句中的条件是false。
答案 0 :(得分:1)
实际上,它是security feature。我之前在Silverlight中遇到过这种情况 - 您只是无法反映该平台上的私有类成员。由于Windows Phone与Silverlight非常相似,我很确定同样的限制也适用于那些。