aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common.Implementations
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2016-08-09 01:12:21 -0400
committerGitHub <noreply@github.com>2016-08-09 01:12:21 -0400
commit615ea35a21e46ef58601f057468c3a6ae39fcd61 (patch)
tree3d470fd6b116b191e5651e81532a7d59c236141a /MediaBrowser.Common.Implementations
parente652b996b6d4ea46d897fa670309e15bbbef158b (diff)
parente52759786ff626d930ff3aa7375546d8efb5b975 (diff)
Merge pull request #2042 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Common.Implementations')
-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>