Побег из песочницы: отражение - PullRequest
0 голосов
/ 05 ноября 2019

У меня действительно веселая проблема. Это что-то вроде песочницы.

Цель: получить приватные методы класса

Что я могу:
1) Загрузить стандартные сборки по сборкам с длинным именем
2) Использовать методы GetType и Type

Что я не могу:
1) Использовать в коде 2) Использовать системное слово в коде. Когда я загружаю сборки, я использую такой хак Load ("Sys" + "tem ....")

Похоже, я могу загрузить частные методы, такие как

myType.GetMethods(BindingFlags.NonPublic | BindingFlags.Instance);

, но я неBindingFlags импортирован в мой код.

Хорошо, я могу создать экземпляр BindingFlags и использовать его GetField, но снова он возвращает Object, и я не могу привести его к BindingFlags.

var value = bindingFlagsType.GetField("NonPublic").GetValue(null); //it's Object not BindingFlags

Я пробовал метод Convert.ChangeType, но Invoke возвращает Object:)

Как я могу решить эту проблему?

...