aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2016-08-09 14:23:35 -0400
committerGitHub <noreply@github.com>2016-08-09 14:23:35 -0400
commit69ae84d504662ded4c80ceaec0e6d153b38bcd83 (patch)
treed7cb297ab91150feb5cf7fa25290267179896c64 /MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
parent5a1c36b58c143be7eaa97353215b036cc0c2a4ee (diff)
parent1b4e789df8435c1996b556e3e346f3bb6c198cc3 (diff)
Merge pull request #2045 from MediaBrowser/beta
Beta
Diffstat (limited to 'MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs')
-rw-r--r--MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs16
1 files changed, 13 insertions, 3 deletions
diff --git a/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs b/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
index 756741e0d..77f65b0c7 100644
--- a/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
+++ b/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
@@ -1,6 +1,7 @@
using MediaBrowser.Model.Serialization;
using System;
using System.Collections.Concurrent;
+using System.Collections.Generic;
using System.IO;
using System.Xml;
using CommonIO;
@@ -24,13 +25,22 @@ namespace MediaBrowser.Common.Implementations.Serialization
// Need to cache these
// http://dotnetcodebox.blogspot.com/2013/01/xmlserializer-class-may-result-in.html
- private readonly ConcurrentDictionary<string, System.Xml.Serialization.XmlSerializer> _serializers =
- new ConcurrentDictionary<string, System.Xml.Serialization.XmlSerializer>();
+ private readonly Dictionary<string, System.Xml.Serialization.XmlSerializer> _serializers =
+ new Dictionary<string, System.Xml.Serialization.XmlSerializer>();
private System.Xml.Serialization.XmlSerializer GetSerializer(Type type)
{
var key = type.FullName;
- return _serializers.GetOrAdd(key, k => new System.Xml.Serialization.XmlSerializer(type));
+ lock (_serializers)
+ {
+ System.Xml.Serialization.XmlSerializer serializer;
+ if (!_serializers.TryGetValue(key, out serializer))
+ {
+ serializer = new System.Xml.Serialization.XmlSerializer(type);
+ _serializers[key] = serializer;
+ }
+ return serializer;
+ }
}
/// <summary>