在Windows Phone 7上使用Reflection的MethodAccessException

时间:2010-12-02 05:11:27

标签: c# exception reflection mobile windows-phone-7

在使用反射时,我最近到了想要访问对象的位置(实际上是对象的静态实例)。

对象本身由内部类定义,因此没有其他方法可以访问它。我可以通过 Instance 属性访问静态实例,而不是直接获取参数化构造函数。在反射的帮助下,我也可以获取此属性并将其设置为PropertyInfo实例 - 它被正确检测到。

但是,我无法通过GetValue获取属性的值(因为它是通过内部类本身中的 get_Instance()调用的)并将其设置为对象因为我得到MethodAccessException

内部类标有SecuritySafeCritical,但我相信这不应该是问题。

关于我为什么会遇到此异常的任何想法?

1 个答案:

答案 0 :(得分:2)

查看MethodAccessException

它说

在以下情况下抛出此异常:

*      A private, protected, or internal method that would not be accessible from normal compiled code is accessed from partially trusted code by using reflection.
*      A security-critical method is accessed from transparent code.
*      The access level of a method in a class library has changed, and one or more assemblies that reference the library have not been recompiled.

检查程序集是否已正确编译,并且您的应用程序具有适当的权限。