class ModelHandler<T> where T : new() { public List<T> FillModel(DataTable dt) { if (dt == null || dt.Rows.Count <= 0) { return null; } List<T> models = new List<T>(); foreach (DataRow row in dt.Rows) { models.Add(FillModel(row)); } return models; } public T FillModel(DataRow row) { if (row == null) { return default(T); } //获取模型实体对象; T model = new T(); //获取模型实体对象类型; Type type = model.GetType(); //获取模型实体对象类公开属性; PropertyInfo[] propertyinfos = type.GetProperties(); //遍历模型实体对象类公开属性; foreach (PropertyInfo propertyinfo in propertyinfos) { //取得实体对象类公开属性名; string propertyinfoName = propertyinfo.Name; //判断DataRow数据类型是否为DBNull.Value if (row[propertyinfoName] != DBNull.Value) { //将DataRow的数值填充至对应的模型实体对象属性中; type.GetProperty(propertyinfoName).SetValue(model, row[propertyinfoName], null); } } return model; } }