实体映射,对象映射


public static class Ex{


public static T2 Map< T2>(this object t1)   where T2 : class
    {

        var t1_Pinfos = t1.GetType().GetProperties();

        var t2_Pinfos = typeof(T2).GetProperties();

        var t2 = Activator.CreateInstance();

        foreach (var p1 in t1_Pinfos)
        {
            if (t2_Pinfos.Any(x => x.Name.ToLower() == p1.Name.ToLower() && x.MemberType==p1.MemberType))
            {
                var p2 = t2_Pinfos.FirstOrDefault(x => x.Name.ToLower() == p1.Name.ToLower() && x.MemberType == p1.MemberType);
                p2.SetValue(t2,p1.GetValue(t1));
            }
        }
        return t2;
    }
}