利用反射提取enum枚举中的项

来源:互联网 发布:软件接口的种类 编辑:程序博客网 时间:2024/06/05 02:54

定义一个通用的泛型类,以适应不同需要。

public static class EnumManager<TEnum>    {        //利用反射获取枚举中的项        public static DataTable GetDataTable()        {            Type t = typeof(TEnum);//创建类型            FieldInfo[] fieldArray = t.GetFields();//获取字段信息对象集合            DataTable table = new DataTable();            table.Columns.Add("Name", Type.GetType("System.String"));            table.Columns.Add("Value", Type.GetType("System.Int32"));            //遍历集合            foreach (FieldInfo field in fieldArray)            {                if (!field.IsSpecialName)                {                    DataRow row = table.NewRow();                    row[0] = field.Name;                    row[1] = Convert.ToInt32(field.GetRawConstantValue());                    table.Rows.Add(row);                }            }            return table;        }    }

定义一个枚举:

public enum OrderStatus    {        未提交 = 1,        已提交 = 2,        已取消 = 3,        受理中 = 4,        已退回 = 5,        已完成 = 6    }

调用结果:

//重构过的通用方法            DataTable table2 = EnumManager<OrderStatus>.GetDataTable();


0 0