Побег из песочницы: отражение
У меня действительно забавная проблема. Это что-то вроде побега из песочницы.
Цель: получить частные методы класса
Что я могу:
1) Загружать стандартные сборки сборками по длинному имени
2) Использовать методы GetType и Type
Чего я не могу:
1) Использовать using в коде 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 return Object:)
Как я мог решить эту проблему?