C#反射静态方法开发实例详解(从DataReader将数据填充到数据实体泛型集合)

 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#反射静态方法开发有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值