日期:2014-05-17  浏览次数:20547 次

如何将两个相同实体类全部属性逐个对比
本帖最后由 tianqi881025 于 2013-10-14 16:32:43 编辑
有两个实体变量,存放的是修改前和修改后的信息。
比如:
InfoModel oldModel=new InfoModel();
InfoModel newModel=new InfoModel();

我现在需要遍历这两个实体类的全部属性的值来进行对比,并将有差别的列出来。
请问如何实现?

------解决方案--------------------
反射遍历
System.Reflection.PropertyInfo[] mPi = typeof(InfoModel).GetProperties();


                for (int i = 0; i < mPi.Length; i++)
                {
                    System.Reflection.PropertyInfo pi = mPi[i];

                    oldValue = pi.GetValue(oldModel, null).ToString();
                    newValue = pi.GetValue(newModel, null).ToString();
                    if (oldValue !=newValue )
                    {
                         有差别的列出来
                    }
                 }

}
  
*****************************************************************************
http://feiyun0112.cnblogs.com/