/* * GNU AFFERO GENERAL PUBLIC LICENSE * Version 3, 19 November 2007 * Copyright (C) 2007 Free Software Foundation, Inc. * Everyone is permitted to copy and distribute verbatim copies * of this license document, but changing it is not allowed. */ using System.Text.Json; namespace UVtools.Core.Extensions; public static class ClassExtensions { public static T? CloneByJsonSerialization(this T classToClone) where T : class { var clone = JsonSerializer.SerializeToUtf8Bytes(classToClone); return JsonSerializer.Deserialize(clone); } public static T CloneByXmlSerialization(this T classToClone) where T : class { var clone = XmlExtensions.SerializeObject(classToClone); return XmlExtensions.DeserializeFromText(clone); } }