using Newtonsoft.Json; namespace LCU.Library.Internal.FileOperationsModels.Shared { public static class Clone { public static T DeepClone(this T source) { if (ReferenceEquals(source, null)) { return default; } var deserializeSettings = new JsonSerializerSettings { ObjectCreationHandling = ObjectCreationHandling.Replace }; return JsonConvert.DeserializeObject(JsonConvert.SerializeObject(source), deserializeSettings); } } }