首页 > 代码库 > C# 利用反射给不同类型对象同名属性赋值

C# 利用反射给不同类型对象同名属性赋值

    public class ObjectReflection    {        public static PropertyInfo[] GetPropertyInfos(Type type)        {            return type.GetProperties(BindingFlags.Public | BindingFlags.Instance);        }        public static void AutoMapping<S, T>(S s, T t)        {            // get source PropertyInfos            PropertyInfo[] pps = GetPropertyInfos(s.GetType());            // get target type            Type target = t.GetType();            foreach (var pp in pps)            {                PropertyInfo targetPP = target.GetProperty(pp.Name);                object value = http://www.mamicode.com/pp.GetValue(s,null);                if (targetPP != null && value != null)                {                    targetPP.SetValue(t, value, null);                }            }        }

调用方式

//Class1 objfrom,Class2 objto;ObjectReflection.AutoMapping<Class1, Class2>(objfrom, objto);//将 objfrom 的属性复制给objto的同名属性。

 

C# 利用反射给不同类型对象同名属性赋值