• 使用反射动态给model绑值


    首先引用命名空间

    using System.Reflection;

    需要使用到泛型,将方法定义为泛型类

      public class TableToList<T> : List<T>
     /// <summary>
            /// 实体类帮值
            /// </summary>
            /// <param name="dt">dataTable 表</param>
            /// <param name="tp">实体命名空间   omy360_Model.UserInfoModel 这样</param>
            public List<T> TableToList1(DataTable dt, string tp)
            {
                List<T> t1 = new List<T>();
                //获取名称类型
                System.Type tt = System.Type.GetType(tp);
                //创建指定类型实例
                object fi = Activator.CreateInstance(tt, null);
                //获取指定对象的公共属性
                PropertyInfo[] filed = fi.GetType().GetProperties();
                foreach (DataRow dr in dt.Rows)
                {
                    object obj = Activator.CreateInstance(tt, null);
                    foreach (DataColumn dc in dt.Columns)
                    {
                        foreach (PropertyInfo t in filed)
                        {
                            if (dc.ColumnName == t.Name)
                            {
                                t.SetValue(obj, dr[dc.ColumnName], null);//给对象赋值
                                continue;
                            }
                        }
    
                    }
                    t1.Add((T)obj);//将对象填充到list集合
                }
                return t1;
            }

    完成~

  • 相关阅读:
    sequence.c
     Link 
    转:MFC中屏蔽ESC和回车关闭对话框
    转:CWebBrowser2去除边框、滚动条、右键菜单
    VC:res协议——从模块中获取资源
    20131213
    20131212
    20131211
    20131205
    20131128
  • 原文地址:https://www.cnblogs.com/wyq-study/p/9249363.html
Copyright © 2020-2023  润新知