实体copy
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; namespace U1City.Infrastructure { public class EntityExtension { public static T EntityToEntityByField<T>(object obj, T newObj) where T : class,new() { if (newObj == null) { newObj = new T(); } PropertyInfo[] propertyInfos = obj.GetType().GetProperties(); PropertyInfo[] newPropertyInfos = typeof(T).GetProperties(); foreach (var newPropertyInfoItem in newPropertyInfos) { foreach (var propertyInfoItem in propertyInfos) { if ( propertyInfoItem.PropertyType.FullName.Equals(newPropertyInfoItem.PropertyType.FullName) && propertyInfoItem.Name == newPropertyInfoItem.Name && propertyInfoItem.CanRead && newPropertyInfoItem.CanWrite ) { newPropertyInfoItem.SetValue(newObj, propertyInfoItem.GetValue(obj, null), null); break; } else if ( propertyInfoItem.Name == newPropertyInfoItem.Name && !propertyInfoItem.PropertyType.FullName.Equals(newPropertyInfoItem.PropertyType.FullName)) { //?? EntityToEntityByField(propertyInfoItem.GetValue(obj, null), newPropertyInfoItem.GetValue(newObj, null)); } } } return newObj; } } }