我有一个非常有趣的问题。这是一种沙盒逃逸。
目的:获取类的私有方法
我能做什么:
1)按长名称的程序集加载标准程序集
2)使用 GetType 和 Type 的方法
我不能:
1)在代码中使用 2)在代码中使用系统字。当我加载程序集时,我使用这样的 hack 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 :)
我该如何解决这个问题?