/// <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);
        }
예제 #2
0
        /// <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);
        }