zoukankan      html  css  js  c++  java
  • 通过反射把一个类的属性的值赋值给另一个类

    两个类我就不创建了,具体实现方法如下:

            /// <summary>
            /// 通过反射把一个类的属性的值赋值给另一个类
            /// </summary>
            /// <typeparam name="D"></typeparam>
            /// <typeparam name="S"></typeparam>
            /// <param name="s"></param>
            /// <returns></returns>
            public static D Mapper<D, S>(S s)
            {
                D d = Activator.CreateInstance<D>();
                try
                {
                    var sType = s.GetType();
                    var dType = typeof(D);
                    foreach (PropertyInfo sP in sType.GetProperties())
                    {
                        foreach (PropertyInfo dP in dType.GetProperties())
                        {
                            if (dP.Name == sP.Name)
                            {
                                dP.SetValue(d, sP.GetValue(s));
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                }
                return d;
            }

    其中D代表新类,S代表原来的类。

    首先实例化D类,sType代表获取S类的属性,dtype获取D类的属性,然后利用GetProperties()方法获取类别下的每一个属性,

    如果D类下的属性和S类下的属性相同,则把S类属性相对应的value值赋值给D类队形的属性。(利用Getvalues()获取),

    调用如下:

    Mapper<User, UserInfo>(UserInfo u);
  • 相关阅读:
    Springboot中使用Scala开发
    aliyun阿里云Maven仓库地址
    css文字滚动
    随笔
    下拉菜单事件
    微信分享
    微信分享功能
    随笔记
    全屏设置
    判定复选框的选中状态
  • 原文地址:https://www.cnblogs.com/xinbaba/p/6938338.html
Copyright © 2011-2022 走看看