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