C#反射静态方法开发实例详解
C#反射静态方法开发在实际的开发中起着很重要的作用,如何通过反射填充泛型集合List的静态方法呢?就是如何通过反射,从DataReader将数据填充到数据实体泛型集合的静态方法.那么我们来看看具体的实现方法:
C#反射静态方法开发实例:
- //Kchen.Core.BaseBusinessObject
- //为通用数据实体类,此处仅为限定T所继承的类型
- public static IList
- FillDataListGeneric (System.Data.IDataReader reader)
- where T : Kchen.Core.BaseBusinessObject
- {
- //实例化一个List<>泛型集合
- IList DataList = new List ();
- while (reader.Read())
- {
- //由于是是未知的类型,所以必须通过
- //Activator.CreateInstance ()方法来依据T的类型动态创建数据实体对象
- T RowInstance = Activator.CreateInstance ();
- //通过反射取得对象所有的Property
- foreach (PropertyInfo Property in typeof(T).GetProperties())
- {
- //BindingFieldAttribute为自定义的Attribute,用于与数据库字段进行绑定
- foreach (BindingFieldAttribute
- FieldAttr in Property.GetCustomAttributes(
- typeof(BindingFieldAttribute), true))
- {
- try
- {
- //取得当前数据库字段的顺序
- int Ordinal = reader.GetOrdinal(FieldAttr.FieldName);
- if (reader.GetValue(Ordinal) != DBNull.Value)
- {
- //将DataReader读取出来的数据填充到对象实体的属性里
- Property.SetValue(RowInstance,
- Convert.ChangeType(reader.GetValue(Ordinal),
- Property.PropertyType), null);
- }
- }
- catch
- {
- break;
- }
- }
- }
- //将数据实体对象add到泛型集合中
- DataList.Add(RowInstance);
- }
- return DataList;
- }
调用的时候使用如下代码
- //伪代码 OleDbDataReader _ds = 创建一个OleDbDataReader
- IList _result =
- Kchen.Utilities.FillDataListGeneric (_ds);
此C#反射静态方法开发通过一个实体类型和DateReader,快速的将数据填充到数据实体泛型集合中.
C#反射静态方法开发实例应用内容就向你介绍到这里,希望对你了解和学习C#反射静态方法开发有所帮助。
【编辑推荐】
- C#线程控制浅析
- C#线程优先级浅析
- C#语言学习阶段浅析
- C#读取word文档实例浅析
- C#读取Word文档异常处理解析
版权声明:
作者:后浪云
链接:https://www.idc.net/help/406350/
文章版权归作者所有,未经允许请勿转载。
THE END