easyui 开发中的通用类库

本文介绍了一种将C#中的枚举类型转换为DataTable的方法,该DataTable包含Name、Value和Desc三列,其中Desc列使用了DescriptionAttribute特性来提供枚举成员的描述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Enum转DataTable 

        public enum LogCatalogEnum
        {
            [DescriptionAttribute("fdsa")]
            全部 = 0,
            系统事件 = 1,
            用户事件 = 2
        }

转换成DataTable:

代码:

View Code
 1    /// <summary>
 2         /// 枚举转成DataTable,有三列:
 3         /// Name:System.String 
 4         /// Value:long
 5         /// Desc:System.String
 6         /// </summary>
 7         /// <param name="enumType">枚举类型,如果不是会抛出InvalidOperationException异常</param>
 8         /// <returns>枚举对应的DataTable</returns>
 9         public static DataTable Enum2DataTable(Type enumType)
10         {
11             if (enumType.IsEnum != true)
12                 throw new InvalidOperationException();
13 
14 
15             //建立DataTable的列信息
16             DataTable dt = new DataTable();
17             dt.Columns.Add("Name", typeof(System.String));
18             dt.Columns.Add("Value", typeof(long));
19             dt.Columns.Add("Desc", typeof(System.String));
20 
21             //获得特性Description的类型信息
22             Type typeDescription = typeof(DescriptionAttribute);
23             System.Reflection.FieldInfo[] fields = enumType.GetFields();
24 
25             //检索所有字段
26             foreach (FieldInfo field in fields)
27             {
28                 if (field.FieldType.IsEnum == true)
29                 {
30                     DataRow dr = dt.NewRow();
31                     // 通过字段的名字得到枚举的值
32                     // 注意枚举的值需要时long类型
33                     dr["Name"] = field.Name;
34                     dr["Value"] = (long)(int)enumType.InvokeMember(field.Name, BindingFlags.GetField, null, null, null);
35 
36                     object[] arr = field.GetCustomAttributes(typeDescription, true);
37                     if (arr.Length > 0)
38                     {
39                         DescriptionAttribute desc = (DescriptionAttribute)arr[0];
40                         dr["Desc"] = desc.Description;
41                     }
42                     else
43                     {
44                         dr["Desc"] = field.Name;
45                     }
46                     dt.Rows.Add(dr);
47                 }
48             }
49 
50             return dt;
51         }

 

 

 

转载于:https://www.cnblogs.com/zhaobl/archive/2013/02/05/2892625.html

Easyui开发框架源码 源码描述: 一、功能介绍: 本系统实现的核心功能完全适合企业级开发 1、框架采用多层架构,反射技术。 2、权限管理里实现的功能:按钮管理、菜单管理、角色管理、用户管理、数据字典、单号管理、日志管理等。通用于后台管理系统以及权限管理模块。 3、系统用到缓存技术,MemCached和Redis这2种,具体缓存资料网上很多。 二、目录结构: 01 Reference DLL 这里主要包括第三方的框架和组件项目,把这些文件分门别类地集中放在此目录下。 02 Solution Items 项目的规范、流程、重要文件等。 03 Test 这里主要放置测试需要的一些信息,如测试版本、测试文档等。 04 Publish 这个文件夹主要放置发布的版本。 05 Framework 主要包括数据访问框架、通用权限框架、异常和日志处理框架、IOC框架、AOP框架等基础或常用功能。 06 Bussiness JTS项目的业务文件夹。 07 UI 即User Interface,该层作为数据输入和展示的界面,是与用户交互的有效途径,所以它起着至关重要的作用。往往给人第一印象的就是UI层,在设计的时候也要根据不同的技术或者不同的要求进行斟酌。通常可以把UI分为B/S UI、C/S UI以及WEB服务。在这里就是我们的ASP.NET项目。 08 SOA 这一层不是必须的,根据项目的具体情况进行取舍,如果业务比较复杂且交互项目繁多,那么SOA可以减轻我们的负担;如果业务比较单一且相对简单,就可以直接调用或者使用Web Service/Remoting/WCF作为通信框架即可。在实施SOA的过程中,可以自己使用WCF+WF搭建一个小型轻量级的SOA框架,也可以使用诸如Biztalk等软件。 三、注意事项: 1、开发环境为Visual Studio 2010及以上,数据库为SQL Server 2008R2,数据库文件在DB文件夹中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值