反射找不到实现的方法

时间:2012-04-22 11:39:01

标签: c# reflection windows-phone

我无法弄清楚为什么我对这一行有例外:

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。

1 个答案:

答案 0 :(得分:1)

实际上,它是security feature。我之前在Silverlight中遇到过这种情况 - 您只是无法反映该平台上的私有类成员。由于Windows Phone与Silverlight非常相似,我很确定同样的限制也适用于那些。