Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
694 views
in Technique[技术] by (71.8m points)

c# - MethodAccessException with Reflection on Windows Phone 7

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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...