aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
diff options
context:
space:
mode:
authorhatharry <hatharry@hotmail.com>2016-08-28 12:51:32 +0000
committerGitHub <noreply@github.com>2016-08-28 12:51:32 +0000
commitc974641a352685b2e6595dd7b291843c8e6364ac (patch)
tree2e6ca83c4d08c5b676e12edae947e635d290bc3f /MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
parentf21f9923de6291aaf985f32dbbbaddbb26d07fb1 (diff)
parent81765ff29f624fd34e1abe3c7bb8149bbb001aef (diff)
Merge pull request #22 from MediaBrowser/dev
Dev
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>