fix: use new serializer cache per IXmlSerializer (#11356)

This commit is contained in:
Cody Robibero 2024-04-14 17:01:59 -06:00 committed by GitHub
parent 6fb6b5f176
commit 133b568a35
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -15,10 +15,9 @@ namespace Emby.Server.Implementations.Serialization
{ {
// Need to cache these // Need to cache these
// http://dotnetcodebox.blogspot.com/2013/01/xmlserializer-class-may-result-in.html // http://dotnetcodebox.blogspot.com/2013/01/xmlserializer-class-may-result-in.html
private static readonly ConcurrentDictionary<string, XmlSerializer> _serializers = private readonly ConcurrentDictionary<string, XmlSerializer> _serializers = new();
new ConcurrentDictionary<string, XmlSerializer>();
private static XmlSerializer GetSerializer(Type type) private XmlSerializer GetSerializer(Type type)
=> _serializers.GetOrAdd( => _serializers.GetOrAdd(
type.FullName ?? throw new ArgumentException($"Invalid type {type}."), type.FullName ?? throw new ArgumentException($"Invalid type {type}."),
static (_, t) => new XmlSerializer(t), static (_, t) => new XmlSerializer(t),