项目中经常遇到需要将一个对象深拷贝出来做其他事情,而原对象保持原有状态的情况。
当时又不想自己new一个出来,然后对着一堆字段赋值......
当时又不想自己new一个出来,然后对着一堆字段赋值......
多次遇到这样的需求后就想着用反射实现。
#region 对象拷贝
//引入命名空间using System.Reflection;
/// <summary>
/// 对象拷贝
/// </summary>
/// <param name="obj">被复制对象</param>
/// <returns>新对象</returns>
private static object CopyOjbect(object obj)
{
if (obj == null)
{
return null;
}
//拷贝目标
Object targetDeepCopyObj;
//元类型
Type targetType = obj.GetType();
//值类型
if (targetType.IsValueType == true)
{
targetDeepCopyObj = obj;