MethodAccessException with Reflection on Windows P

2019-09-06 07:49发布

While working with reflection, I recently got to the point where I wanted to access an object (in fact, a static instance of an object).

The object itself is defined by an internal class, therefore there is no other way to access it. Instead of directly getting a parametrized constructor, I can access a static instance via the Instance property. With the help of reflection, I am also able to get this property and set it to a PropertyInfo instance - it is detected correctly.

However, I am not able to get the value of the property via GetValue (since it is called via get_Instance() in the internal class itself) and set it to an object because I am getting a MethodAccessException.

The internal class is marked with the SecuritySafeCritical, but I do believe that shouldn't be the problem.

Any ideas on why am I getting this exception?

1条回答
相关推荐>>
2楼-- · 2019-09-06 08:16

Have a look at MethodAccessException.

It says

This exception is thrown in situations such as the following:

*      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.

Check if the assembly is properly compiled and your application has proper privileges.

查看更多
登录 后发表回答