Clone using a MemoryStream

This commit is contained in:
Archangel
2025-02-14 12:51:07 +01:00
parent c4d6aa83b3
commit 711986357a
+8 -8
View File
@@ -1,3 +1,4 @@
using System.Text.Json;
using SptCommon.Annotations;
namespace Core.Utils.Cloners;
@@ -5,15 +6,14 @@ namespace Core.Utils.Cloners;
[Injectable]
public class JsonCloner : ICloner
{
protected JsonUtil _jsonUtil;
public JsonCloner(JsonUtil jsonUtil)
{
_jsonUtil = jsonUtil;
}
public T? Clone<T>(T? obj)
{
return _jsonUtil.Deserialize<T>(_jsonUtil.Serialize(obj));
using (MemoryStream ms = new())
{
JsonSerializer.Serialize(ms, obj);
ms.Seek(0, SeekOrigin.Begin);
return JsonSerializer.Deserialize<T>(ms);
}
}
}