利用反射获取静态类的静态属性值(已知属性名称的字符串表示)

列如获取Phone属性的值

typeof(ExcelColumnName).GetProperty(“Phone”).GetValue(null, null)//ExcelColumnName是静态类

ExcelColumnName类如下:

 1 /// <summary>
 2         /// 要上传的excel所包含的列
 3         /// </summary>
 4         public static class ExcelColumnName
 5         {
 6             public static string Phone { get; set; } = "手机号(必填)";
 7             public static string Name { get; set; } = "用户名(默认与手机号相同)";
 8             public static string RealName { get; set; } = "真实姓名";
 9             public static string CardNo { get; set; } = "身份证号";
10             public static string Referees { get; set; } = "推荐人";
11             public static string CreateTime { get; set; } = "报名日期(格式2016/1/2)";
12             public static string CompanyName { get; set; } = "工作单位";
13             public static string Email { get; set; } = "邮箱";
14
15             public static List<string> ColumnList = new List<string>
16             {
17                 Phone,
18                 Name,
19                 RealName,
20                 CardNo,
21                 Referees,
22                 CreateTime,
23                 CompanyName,
24                 Email
25             };
26         }

Ps:要特别注意的是静态字段如果是以下这样定义的话就获取不到了,原因是:这样的话Phone就不被认为是类的属性了,再通过反射取属性就去不到了,根本找不到这个属性

public static string Phone = "手机号(必填)";

  

时间: 2024-10-25 02:03:14

利用反射获取静态类的静态属性值(已知属性名称的字符串表示)的相关文章

C#利用反射获取对象属性值

public static string GetObjectPropertyValue<T>(T t, string propertyname){     Type type = typeof(T); PropertyInfo property = type.GetProperty(propertyname); if (property == null) return string.Empty; object o = property.GetValue(t, null); if (o == n

利用反射获取字段并获取值或者设置值

package Reflect; import java.lang.reflect.Field;class User{ public String account; public String password;}class Student extends User{ public int age; public String name; private String sex; public Student() { System.out.println("调用无参构造器创建对象");

c#反射机制学习和利用反射获取类型信息

反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的名称.限定符和参数等.有了反射,即可对每一个类型了如指掌.如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道 1..NET可执行应用程序结构 程序代码在编译后生成可执行的应用,我们首先要了解这种可执行应用程序的结构. 应用程序结构分为应用程序域—程序集—模块—类型—成员几

Atitit利用反射获取子类 集合&#160;以及继承树

Atitit利用反射获取子类 集合 以及继承树 想从父类往下找子类的确是不可能的,要知道只要类不是final的话谁都有继承它的自由不需要事前通知父类. Eclipse实现不是重父类开始找而是重子类往回找,然后在逐个匹配. 很简单,遍历源代码目录下的所有类文件,根据类定义行通过字符串匹配找出继承该类的所有子类. 找某个包的子类,JDK中没有直接提供相应的接口,应该是加载classpath下的所有类,放到类似Map<Package, Collection<Class>>容器中 如果一定

两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i]

[问题] 1.不用除法运算 两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]...*a[N-1]/a[i]: 要求: 1.不准用除法运算 2.除了循环计数值,a[N],b[N]外,不准再用其他任何变量(包括局部变量,全局变量等) 3.满足时间复杂度O(n),空间复杂度O(1). [分析] 提示:题目要求b[i] = a[0]*a[1]*a[2]...*a[N-1]/a[i] ,相当于求:a[0]*a[1]*a[2]*a[3].

java反射获取对象的属性值和对象属性中的子属性值

近段时间在做web项目,前端使用的是jQuery EasyUI. 为方便需要,准备做一个前端通用的Datagird导出Excel功能,博主也考虑过思路和最终功能,1.前端选中行导出:2.当前页导出:3.当前过滤条件导出. 想偷懒在网上找找已有的代码改改,发现大部分只能满足个别需求,使用JS导出只能满足前端,使用代码才能实现3功能. ...... 好了,说了一堆废话,回归正题,本文是在做通用自定义字段导出时所需要,根据属性名去查找对象和子对象,找到对应属性值,抓取回来放到Excel中. 直接上代码

C#反射获取属性值和设置属性值

/// /// 获取类中的属性值 /// public string GetModelValue(string FieldName, object obj) { try { Type Ts = obj.GetType(); object o = Ts.GetProperty(FieldName).GetValue(obj, null); string Value = Convert.ToString(o); if (string.IsNullOrEmpty(Value)) return null

用反射写的取属性值和设置属性值得方法

1 package com.lovo.util; 2 3 import java.lang.reflect.Constructor; 4 import java.lang.reflect.Field; 5 6 public class MyUtil { 7 private MyUtil(){ 8 throw new AssertionError(); 9 } 10 /** 11 * 通过反射获取对象的字段值 12 * @param target 目标对象 13 * @param fieldNam

利用反射获取GridView的高度

本篇文章基于 之前的一篇判断ListView的每一个item高度 直接复用上一篇文章中的setListViewHeightBasedOnChildren方法,当初是使用gridView.getNumColumns();方法,获取gridview的列数,但是当我断点看的时候,发现值一直是-1, 而gridview中的mRequestedNumColumns字段反而是正常的, 看看gridview的源码中的setNumColumns方法,它把mRequestedNumColumns字段赋值了. /*