/// <summary> /// 填充对象列表:用DataTable填充实体类 /// </summary> public static List <N> FillModel <N>(DataTable dt) { if (dt == null || dt.Rows.Count == 0) { return(null); } List <N> modelList = new List <N>(); foreach (DataRow dr in dt.Rows) { N model = (N)Activator.CreateInstance(typeof(N)); // N model = (N)Activator.CreateInstance(); for (int i = 0; i < dr.Table.Columns.Count; i++) { PropertyInfo propertyInfo = model.GetType().GetProperty(dr.Table.Columns[i].ColumnName); if (propertyInfo != null && dr[i] != DBNull.Value) { propertyInfo.SetValue(model, NTool.HConvertByType(dr[i].ToString(), propertyInfo.PropertyType), null); } } modelList.Add(model); } return(modelList); }
public static void SetModelFieldVal(PropertyInfo[] pi, ref Object obj, string keyPostOrGet, string val) { List <PropertyInfo> kvp = pi.Where(a => a.Name.ToLower().Trim().Equals(keyPostOrGet.ToLower().Trim())).Skip(0).Take(1).ToList(); if (kvp != null && kvp.Count > 0) { Type tp = kvp[0].PropertyType; if (string.IsNullOrEmpty(val)) { return; } object _o = NTool.HConvertByType(val, tp); kvp[0].SetValue(obj, _o, null); } }
public static bool ModelSetVal <T>(ref T modelVal, Dictionary <string, string> vl) { if (!IsDcNULL <string, string>(vl)) { return(false); } Type type = typeof(T); object obj = type.Assembly.CreateInstance(type.FullName); foreach (PropertyInfo pi in obj.GetType().GetProperties()) { string val = ""; string name = ""; try { KeyValuePair <string, string> kvp = (KeyValuePair <string, string>)vl.Where(a => a.Key.ToLower().Trim().Equals(pi.Name.ToLower().Trim())).Skip(0).Take(1). FirstOrDefault(); val = kvp.Value + ""; name = "" + pi.Name; } catch (Exception ex) { } Type tp = pi.PropertyType; if (string.IsNullOrEmpty(val)) { continue; } object _o = NTool.HConvertByType(val, tp); pi.SetValue(obj, _o, null); } modelVal = (T)obj; return(true); }