From 2372dfbb9eb252bdad7a9f026cda15c08a8b6e90 Mon Sep 17 00:00:00 2001 From: Slendy Date: Wed, 5 Apr 2023 00:09:46 -0500 Subject: [PATCH] Store XML serializers in ConcurrentDictionary for thread safety --- ProjectLighthouse/Serialization/LighthouseSerializer.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ProjectLighthouse/Serialization/LighthouseSerializer.cs b/ProjectLighthouse/Serialization/LighthouseSerializer.cs index 36f6aafa..f6a118e9 100644 --- a/ProjectLighthouse/Serialization/LighthouseSerializer.cs +++ b/ProjectLighthouse/Serialization/LighthouseSerializer.cs @@ -1,5 +1,6 @@ #nullable enable using System; +using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Reflection; @@ -16,8 +17,7 @@ namespace LBPUnion.ProjectLighthouse.Serialization; public static class LighthouseSerializer { - - private static readonly Dictionary<(Type, XmlRootAttribute?), CustomXmlSerializer> serializerCache = new(); + private static readonly ConcurrentDictionary<(Type, XmlRootAttribute?), CustomXmlSerializer> serializerCache = new(); private static readonly XmlSerializerNamespaces emptyNamespace = new(new[] { @@ -36,7 +36,7 @@ public static class LighthouseSerializer CustomXmlSerializer serializer = new(type, rootAttribute); - serializerCache.Add((type, rootAttribute), serializer); + serializerCache.TryAdd((type, rootAttribute), serializer); return serializer; }