I lazy when do one work every coding, that’s copy DAO to Entity in Hibernate (my company’s framework) please dont ask why do that ^^.
Here is may code:
static void Main(string[] args)
{
User dto = new User();
//dto.ID = new Guid();
dto.FirstName = "Bao";
dto.MiddleName = "Duc Phuc";
dto.LastName = "Nguyen";
UserBE be = new UserBE();
be = ConvertDTOtoBE<User, UserBE>(dto, be) as UserBE;
PropertyInfo[] pi1 = typeof(User).GetProperties();
PropertyInfo[] pi2 = typeof(UserBE).GetProperties();
Console.WriteLine(typeof(User).Name);
foreach (PropertyInfo pi in pi1)
{
Console.WriteLine(pi.Name + " : " + pi.GetValue(dto, null));
}
Console.WriteLine("\n" + typeof(UserBE).Name);
foreach (PropertyInfo pi in pi2)
{
Console.WriteLine(pi.Name + " : " + pi.GetValue(be, null));
}
Console.WriteLine();
}
public static T2 ConvertDTOtoBE<T1, T2>(T1 t1, T2 t2)
where T2:class,new()
{
//T2 t2 = new T2();
t2 = new T2();
Type type1 = typeof(T1);
PropertyInfo[] pi1 = type1.GetProperties();
PropertyInfo[] pi2 = typeof(T2).GetProperties();
PropertyInfo piTmp;
foreach (PropertyInfo pi in pi1)
{
piTmp = pi2.FirstOrDefault(p => p.Name == pi.Name);
if (piTmp != null && piTmp.CanWrite && piTmp.PropertyType.Equals(pi.PropertyType))
{
piTmp.SetValue(t2, pi.GetValue(t1, null),null);
//Console.WriteLine(pi.Name + " : " + pi.GetValue(t1, null));
}
}
return t2;
}
Recent Comments