/// <summary> /// 模型类型转换_DataRow /// </summary> /// <param name="dr"></param> /// <returns></returns> public static T ConvertToModel(DataRow dr) { T t = new T(); string tempName = ""; PropertyInfo[] propertys = t.GetType().GetProperties();// 获得此模型的公共属性 foreach (PropertyInfo pi in propertys) { tempName = pi.Name; if (!pi.CanWrite) { continue; } if (!dr.Table.Columns.Contains(tempName)) { //数据行不存在对应字段 continue; } object value = dr[tempName]; if (value != DBNull.Value) { value = PropertyInfoConvertHelper.GetPropertyValue(pi, value); pi.SetValue(t, value, null); } } return(t); }
/// <summary> /// XMLNode获取对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="node"></param> /// <returns></returns> public static T GetObjectInfo <T>(XmlNode node) { T reuslt = System.Activator.CreateInstance <T>(); PropertyInfo[] propertys = reuslt.GetType().GetProperties();// 获得此模型的公共属性 foreach (var pi in propertys) { string Temp_strFieldName = pi.Name; XmlAttribute attr = node.Attributes[Temp_strFieldName]; if (attr != null && pi.CanWrite) { object value = attr.Value; value = PropertyInfoConvertHelper.GetPropertyValue(pi, value); pi.SetValue(reuslt, value, null); } } return(reuslt); }