MaxBeauchemin
2/4/2020 - 6:05 PM

Clone Object

/// <summary>
/// Helper method to create a deep clone of a DTO
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static T Clone<T> (T obj)
{
  if (obj.GetType().FullName.StartsWith("System.Data.Entity.Dynamic"))
  {
    throw new Exception("Cannot Clone Entity");
  }

  return JsonConvert.DeserializeObject<T>(JsonConvert.SerializeObject(obj));
}