zoukankan      html  css  js  c++  java
  • 反射例子

     /// <summary>
            /// 把datatable数据转化为实体
            /// </summary>
            /// <param name="targetDataTable"></param>
            /// <param name="materialInfomationModel"></param>
            /// <param name="j"></param>
            public void DateToModel(DataTable targetDataTable, ref MaterialInfomationModel materialInfomationModel, int j)
            {
                for (int k = 0; k < targetDataTable.Columns.Count; k++)
                {
                    Type type1 = materialInfomationModel.GetType(); //反射获取当前实体的所有类别
                    foreach (PropertyInfo propertyInfo in type1.GetProperties())//反射获取 当前实体类的所有属性
                    {
                        string name = propertyInfo.Name;//得到属性的名称
                        object value1 = propertyInfo.GetValue(materialInfomationModel, null); //得到属性的值
                        if (targetDataTable.Columns[k].ColumnName == name)//如果 数据源的表的列名称=反射获取得到的属性名称
                        {
                            value1 = targetDataTable.Rows[j][k];//将 数据源的表的列名对应的值 赋值给实体属性
                            if (value1 != DBNull.Value)//如果 数据源的表 对应的列的 值!=属性的值
                            {
                                propertyInfo.SetValue(materialInfomationModel, value1, null);//将新的值 通过反射来设置给实体
                            }
                            continue;
                        }
                    }
                }
            }

     反射要映入命名空间:

       using System.Reflection;

    //获取当前实体的所有类别
    Type t = taskEN.GetType();
    //获取属性列表
    System.Reflection.PropertyInfo[] ps = t.GetProperties();
    foreach (System.Reflection.PropertyInfo p in ps)
    {
        //分别输入 属性名称及值
        str.AppendFormat("{0}: {1}<br/>", p.Name, p.GetValue(taskEN, null));
    }
  • 相关阅读:
    hdu 2222 Keywords Search
    Meet and Greet
    hdu 4673
    hdu 4768
    hdu 4747 Mex
    uva 1513 Movie collection
    uva 12299 RMQ with Shifts
    uva 11732 strcmp() Anyone?
    uva 1401
    hdu 1251 统计难题
  • 原文地址:https://www.cnblogs.com/dlf-myDream/p/4661331.html
Copyright © 2011-2022 走看看