把T2类型的值赋给T1
在下面的调用中NewsComment就是返回类型,News是值的类型
当然在这里是通过类型的属性名字进行的赋值,如果你有需要也可以增加特性,使用特性名字进行赋值
var val= Reflect<NewsComment,News>.GetModel(new News());
public class Reflect<T1, T2> where T1 : class where T2 : class
{
public static T1 GetModel(T2 t2)
{
Type type1 = typeof(T1);
Type type2 = typeof(T2);
var pro1 = type1.GetProperties();
var pro2 = type2.GetProperties();
T1 t = Activator.CreateInstance(type1) as T1;
foreach (var item1 in pro1)
{
foreach (var item2 in pro2)
{
if (item1.Name == item2.Name)
{
item1.SetValue(t, item2.GetValue(t2));
}
}
}
return t;
}
}