private static readonly MethodInfo _method_memberwise_clone = typeof(object).GetMethod("MemberwiseClone", BindingFlags.Instance | BindingFlags.NonPublic);
public static T Clone<T>(T item)
{
var cloneable = item as ICloneable;
if (cloneable != null)
{
return (T)cloneable.Clone();
}
else
{
return (T)_method_memberwise_clone.Invoke(item, null);
}
}
No comments:
Post a Comment