对象属性自动赋值

业务中遇到数据库对象转业务对象时不同类无法自动赋值的问题,虽然是继承关系也没办法直接自动拷贝,所以写了个反射类属性的方法能够实现基类与继承类之间的属性赋值。

内置类型的property、list没有问题,好像数组类型的会有问题;

     /// <summary>
        /// 转换DTO的Property到BDO
        /// </summary>
        /// <param name="dto">DTO实例</param>
        /// <param name="bdo">BDO实例</param>
        public static void ConvertDto2Bdo(object dto, object bdo)
        {
            Type typeDto = dto.GetType();
            Type typeBdo = bdo.GetType();
            foreach (var item in typeDto.GetProperties())
            {
                var v = item.GetValue(dto);
                var bdoItem = typeBdo.GetProperty(item.Name);
                if (bdoItem != null)
                {
                    bdoItem.SetValue(bdo, v);
                }
            }
        }
原文地址:https://www.cnblogs.com/hejoy91/p/13489169.html