打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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

2009-11-16  来自:CSDN Blog  字体大小:【  
  • 摘要:如何通过使用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#反射静态方法开发有所帮助。

作者:kchen           
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
一文读懂DDS和AUTOSAR Adaptive的集成(2)
什么是静态方法
ADO.NET数据库访问技术(一)
静态方法与实例方法的区别
java程序员修炼之路基础:static、final、abstract
关于类的静态与非静态成员变量及方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服