zoukankan      html  css  js  c++  java
  • 使用反射动态给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;
            }

    完成~

  • 相关阅读:
    Cisco静态路由
    VTP
    trunk
    vim中文乱码
    Ubuntu 切换root用户是时出现su Authentication failure
    github 换行符自动转换功能
    Qt弹出消息对话框
    串口发送Hex数组
    Qt 按顺序保存多个文件
    Qt乱码解决办法(常量中有换行符)
  • 原文地址:https://www.cnblogs.com/wyq-study/p/9249363.html
Copyright © 2011-2022 走看看