利用反射来查看对象中的私有变量

在程序设计的时候,我们可能会写一些底层使用的库,包括一些核心的类,而这些通常封装了一些私有的方法和私有变量,在程序未完成的时候,我们可能需要对其进行一些调试,来检验所定义的类是否有错误。
当然也有可能这个库是来自于其它开发人员。
我们在调试中可能会去查看类中的私有变量。

我的个人习惯是写了一段自己认为比较重要的dll后对其进行一些测试,验证是否其正确性。

调试和测试有一定的区别。
调试是你可能不知道程序最终运行的结果,而测试就是你确定了输入,你可以预计输出,因此来验证最终的结果。

说反射的资料很多,我就不具体说如何查看一个类中的所有方法,所有成员的完成了。
假设我已经知道有一个私有成员的名字,现在有这个类型的对象,我想知道私有成员的值怎么办?
废话说了那么多,看一点代码,很容易了解如何通过反射来查看对象的私有成员。

Type mytype = obj.GetType();
FieldInfo  fieldinfo 
=  mytype.GetField("_UserCouldExecutedt", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
if(fieldinfo!=null)
{
 String ss 
= (string)fieldinfo.GetValue(obj);
 Console.WriteLine(ss);
}


很简单吧。


原文地址:https://www.cnblogs.com/king_astar/p/155382.html