C#克隆一个对象

版权声明:本文为博主原创文章,不需博主允许即可随意转载。 https://blog.csdn.net/a_dev/article/details/83343397

获取被克隆对象的类型,生成一个实例。再将被克隆对象的所有可写属性值赋予新对象实例。

代码:

public class CloneObject
{
	/// <summary>
	/// 克隆一个对象
	/// </summary>
	/// <param name="sampleObject"></param>
	/// <returns></returns>
	public static object Clone(object sampleObject)
	{
		Type t = sampleObject.GetType();
		PropertyInfo[] properties = t.GetProperties();
		object p = t.InvokeMember("", BindingFlags.CreateInstance, null, sampleObject, null);
		foreach (PropertyInfo pi in properties)
		{
			if (pi.CanWrite)
			{
				object value = pi.GetValue(sampleObject, null);
				pi.SetValue(p, value, null);
			}
		}
		return p;
	}
}

猜你喜欢

转载自blog.csdn.net/a_dev/article/details/83343397