/*
* 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);
}
}