C#反射静态方法开发实例详解

开发 后端
如何通过使用C#反射静态方法开发来填充泛型集合List呢?从DataReader将数据填充到数据实体泛型集合的C#反射静态方法开发是如何实现的呢?本文向你介绍详细的内容。

C#反射静态方法开发在实际的开发中起着很重要的作用,如何通过反射填充泛型集合List的静态方法呢?就是如何通过反射,从DataReader将数据填充到数据实体泛型集合的静态方法.那么我们来看看具体的实现方法:

C#反射静态方法开发实例:

  1. //Kchen.Core.BaseBusinessObject  
  2. //为通用数据实体类,此处仅为限定T所继承的类型  
  3. public static IList   
  4. FillDataListGeneric(System.Data.IDataReader reader)  
  5.  where T : Kchen.Core.BaseBusinessObject  
  6. {  
  7. //实例化一个List<>泛型集合  
  8. IList DataList = new List();  
  9. while (reader.Read())  
  10. {  
  11. //由于是是未知的类型,所以必须通过  
  12. //Activator.CreateInstance()方法来依据T的类型动态创建数据实体对象  
  13. T RowInstance = Activator.CreateInstance();  
  14. //通过反射取得对象所有的Property  
  15. foreach (PropertyInfo Property in typeof(T).GetProperties())  
  16. {  
  17. //BindingFieldAttribute为自定义的Attribute,用于与数据库字段进行绑定  
  18. foreach (BindingFieldAttribute   
  19. FieldAttr in Property.GetCustomAttributes(  
  20. typeof(BindingFieldAttribute), true))  
  21. {  
  22. try 
  23. {  
  24. //取得当前数据库字段的顺序  
  25. int Ordinal = reader.GetOrdinal(FieldAttr.FieldName);  
  26. if (reader.GetValue(Ordinal) != DBNull.Value)  
  27. {  
  28. //将DataReader读取出来的数据填充到对象实体的属性里  
  29. Property.SetValue(RowInstance,   
  30. Convert.ChangeType(reader.GetValue(Ordinal),   
  31. Property.PropertyType), null);  
  32. }  
  33. }  
  34. catch 
  35. {  
  36. break;  
  37. }  
  38. }  
  39. }  
  40. //将数据实体对象add到泛型集合中  
  41. DataList.Add(RowInstance);  
  42. }  
  43. return DataList;  
  44. }  

调用的时候使用如下代码

  1. //伪代码 OleDbDataReader _ds = 创建一个OleDbDataReader   
  2. IList _result =   
  3. Kchen.Utilities.FillDataListGeneric(_ds); 

此C#反射静态方法开发通过一个实体类型和DateReader,快速的将数据填充到数据实体泛型集合中.

C#反射静态方法开发实例应用内容就向你介绍到这里,希望对你了解和学习C#反射静态方法开发有所帮助。

【编辑推荐】

  1. C#线程控制浅析
  2. C#线程优先级浅析
  3. C#语言学习阶段浅析
  4. C#读取word文档实例浅析
  5. C#读取Word文档异常处理解析
责任编辑:仲衡 来源: cnblogs
相关推荐

2009-08-28 12:47:30

C#静态方法应用

2009-08-28 13:12:56

C#反射实例C#反射

2009-08-28 12:31:06

C#静态方法

2010-08-13 09:35:08

C#静态

2021-03-15 08:18:23

C#反射模块

2009-08-31 09:47:22

C#静态变量初始化

2009-09-07 06:18:57

C#窗体设计器

2024-03-04 18:49:59

反射C#开发

2009-04-10 09:55:44

C#反射.NET

2009-08-24 16:08:45

C# DrawStri

2009-08-28 14:09:19

C#静态类

2009-08-28 12:41:49

静态方法与非静态方法

2009-09-02 17:12:06

C#关机代码

2009-08-20 11:01:51

C#操作内存

2009-08-18 10:14:19

C#插件构架

2009-09-11 12:31:52

C#实例详解TypeConvert

2009-08-12 17:32:44

C#反射方法

2009-08-27 16:00:03

C#静态字段C#实例字段

2009-08-18 17:05:08

C#操作xml文件

2009-08-28 12:25:58

C#静态方法
点赞
收藏

51CTO技术栈公众号