2010-12-02 2 views
0

Во время работы с отражением я недавно дошел до точки, где хотел получить доступ к объекту (фактически, статический экземпляр объекта).MethodAccessException с отражением на Windows Phone 7

Сам объект определяется внутренним классом, поэтому нет другого доступа к нему. Вместо прямого получения параметризованного конструктора я могу получить доступ к статическому экземпляру через свойство Instance. С помощью отражения я также могу получить это свойство и установить его на экземпляр PropertyInfo - он обнаружен правильно.

Однако, я не могу получить значение свойства через GetValue (так как она вызывается через get_Instance() в самом внутреннем классе) и установить его на объект, потому что я получаю MethodAccessException.

Внутренний класс помечен SecuritySafeCritical, но я считаю, что это не должно быть проблемой.

Любые идеи о том, почему я получаю это исключение?

ответ

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. 

Проверьте сборку правильно составлен и ваше приложение имеет соответствующие привилегии.

+0

Поскольку приложения WP7 работают в изолированной среде, я уверен, что это вызвано тем фактом, что доступ к вызову осуществляется из частично доверенного кода - я это понимаю. Мне интересно, можно ли обойти это ограничение. – 2010-12-02 06:09:18