Exemple #1
0
        /// <summary>
        /// ConfigObject 使用XmlNode的Attributes信息和Child Node信息来设置target的同名属性
        /// </summary>
        public static void ConfigObject(XmlNode objNode, object target)
        {
            foreach (XmlAttribute attr in objNode.Attributes)
            {
                ReflectionHelper.SetProperty(target, attr.Name, attr.Value);
            }

            foreach (XmlNode childNode in objNode.ChildNodes)
            {
                ReflectionHelper.SetProperty(target, childNode.Name, childNode.InnerText);
            }
        }
Exemple #2
0
        /// <summary>
        /// CopyProperty 将source中的属性的值赋给target上想匹配的属性,匹配关系通过propertyMapItemList确定
        /// </summary>
        public static void CopyProperty(object source, object target, IList <MapItem> propertyMapItemList)
        {
            Type sourceType = source.GetType();
            Type targetType = target.GetType();

            PropertyInfo[] sourcePros = sourceType.GetProperties();

            if (propertyMapItemList != null)
            {
                foreach (MapItem item in propertyMapItemList)
                {
                    object val = ReflectionHelper.GetProperty(source, item.Source);
                    ReflectionHelper.SetProperty(target, item.Target, val);
                }
            }
            else
            {
                foreach (PropertyInfo sourceProperty in sourcePros)
                {
                    object val = ReflectionHelper.GetProperty(source, sourceProperty.Name);
                    ReflectionHelper.SetProperty(target, sourceProperty.Name, val);
                }
            }
        }
Exemple #3
0
 public static void SetProperty(object obj, string propertyName, object proValue)
 {
     ReflectionHelper.SetProperty(obj, propertyName, proValue, true);
 }