///
/// Dto对象转Entity,只是复制属性,dto的属性要比entity少2个哦。
///
/// EntityObject
/// dto对象
/// EntityObject对应的实例
public EntityObject ConvertToEntityObject(object dto) where T : EntityObject
{
Type dtoEntity = dto.GetType();
var piList = dtoEntity.GetProperties().Where(p => p.PropertyType.IsPublic == true).ToList();
Assembly assembly = Assembly.GetAssembly(typeof(T));
object resultObj = assembly.CreateInstance(string.Join(".",new string[]{typeof(T).Namespace,typeof(T).Name}));
var piResultObj = resultObj.GetType().GetProperties().Where(p => p.PropertyType.IsPublic == true).ToList();
foreach (System.Reflection.PropertyInfo pi in piList)
{
var sourcePi = piResultObj.Single(p => p.Name == pi.Name);
if (sourcePi != null)
{
object value = pi.GetValue(dto, null);
sourcePi.SetValue(resultObj, value, null);
}
}
return resultObj as EntityObject;
}