我有一个非常有趣的问题。有点像沙盒逃逸。
目标:获取类的私有方法
我能做什么:
1)通过长名称的装配体来装载标准装配体
2)使用GetType和Type的方法
我不能:
1)在代码中使用use
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方法,但是调用了返回Object:)
如何解决此问题?