/// <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); } }
/// <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); } } }
public static void SetProperty(object obj, string propertyName, object proValue) { ReflectionHelper.SetProperty(obj, propertyName, proValue, true); }