.net中通过反射得到所有的私有字段(包括父类)
2018-01-26 14:44
239 查看
在.net中,利用反射可以很容易获取类的字段,属性和方法,不管是私有的,公有的还是受保护的,但如果一个类继承了其它的类,想要获取全部的属性或字段或方法似乎没有直接的方法。通过参考Java并实际实践,找到一个折中的办法。Demo如下:
首先定义两个类(Student继承自People)
点击(此处)折叠或打开
通过反射取所有的私有字段我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。
点击(此处)折叠或打开
折中的地方是通过类的类型包含的BaseType属性找到父类型,当父类型不是object时一直取所有的私有字段并添加到List中即可。
权当记录,以备后查。
原文链接
首先定义两个类(Student继承自People)
点击(此处)折叠或打开
public class People { private string _Name; private string _Sex; private string _Age; public string Name { get { return this._Name; } set { this._Name = value; } } public string Sex { get { return this._Sex; } set { this._Sex = value; } } public string Age { get { return this._Age; } set { this._Age = value; } } } public class Student : People { private string _StuNo; private string _SchoolName; public string StuNo { get { return this._StuNo; } set { this._StuNo = value; } } public string SchoolName { get { return this._SchoolName; } set { this._SchoolName = value; } } }
通过反射取所有的私有字段我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。
点击(此处)折叠或打开
List<FieldInfo> fieldList = new List<FieldInfo>(); People stu = new Student(); Type type = stu.GetType(); FieldInfo[] fieldInfos = type.GetFields(BindingFlags.NonPublic | BindingFlags.Instance ); fieldList.AddRange(fieldInfos); while((type = type.BaseType) != typeof(object)) { fieldList.AddRange(type.GetFields(BindingFlags.NonPublic | BindingFlags.Instance)); }
折中的地方是通过类的类型包含的BaseType属性找到父类型,当父类型不是object时一直取所有的私有字段并添加到List中即可。
权当记录,以备后查。
原文链接
相关文章推荐
- Java-Reflection反射-获取包括父类在内的所有字段
- Java-Reflection反射-获取包括父类在内的所有字段
- 反射得到父类私有字段并且赋值
- 反射得到父类的私有字段
- 通过反射得到object[]数组的类型并且的到此类型所有的字段及字段的值
- 通过java反射机制,获取对象的属性和值(包括所有继承的父类)
- 反射遍历所有属性,包括父类
- 【反射】通过反射(包括父对象)获取指定字段的值
- Java反射代码 得到某类的所有字段 getFields()与getDeclaredFields()区别 getMethod()和getDeclaredMethod()区别
- 通过暴力反射得到私有成员
- Java通过反射得到其属性的值包含父类属性
- 通过spring反射工具类ReflectionUtils 得到所有定义的变量
- C#通过反射获取对象属性,打印所有字段属性的值
- 通过反射访问父类的私有方法
- 【.Net码农】C#反射获取 所有字段 及 私有字段
- 通过反射得到类型的所有成员
- 反射-获取类及其父类中声明的所有字段集合
- Java:通过反射复制父类字段到子类。
- 通过反射修改类的私有字段值,调用私有方法
- android 里面 如何使用gson 快速获取类的所有字段名称,包括父类的