aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-10-29 16:02:21 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-10-29 16:02:21 -0400
commitda20e8dcd2867df0a9a6ebc1081edb2db2eebdef (patch)
tree0c00e59c5def4263126353e63bd79b9464b60b10 /MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
parente5d71c1014cc2d78e5004d0736e321b350b7bb64 (diff)
continue with .net core targeting
Diffstat (limited to 'MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs')
-rw-r--r--MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs130
1 files changed, 0 insertions, 130 deletions
diff --git a/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs b/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
deleted file mode 100644
index f48681304..000000000
--- a/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
+++ /dev/null
@@ -1,130 +0,0 @@
-using MediaBrowser.Model.Serialization;
-using System;
-using System.Collections.Concurrent;
-using System.Collections.Generic;
-using System.IO;
-using System.Xml;
-using MediaBrowser.Common.IO;
-using MediaBrowser.Model.IO;
-using MediaBrowser.Model.Logging;
-
-namespace MediaBrowser.Common.Implementations.Serialization
-{
- /// <summary>
- /// Provides a wrapper around third party xml serialization.
- /// </summary>
- public class XmlSerializer : IXmlSerializer
- {
- private readonly IFileSystem _fileSystem;
- private readonly ILogger _logger;
-
- public XmlSerializer(IFileSystem fileSystem, ILogger logger)
- {
- _fileSystem = fileSystem;
- _logger = logger;
- }
-
- // Need to cache these
- // http://dotnetcodebox.blogspot.com/2013/01/xmlserializer-class-may-result-in.html
- 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;
- 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>
- /// Serializes to writer.
- /// </summary>
- /// <param name="obj">The obj.</param>
- /// <param name="writer">The writer.</param>
- private void SerializeToWriter(object obj, XmlTextWriter writer)
- {
- writer.Formatting = Formatting.Indented;
- var netSerializer = GetSerializer(obj.GetType());
- netSerializer.Serialize(writer, obj);
- }
-
- /// <summary>
- /// Deserializes from stream.
- /// </summary>
- /// <param name="type">The type.</param>
- /// <param name="stream">The stream.</param>
- /// <returns>System.Object.</returns>
- public object DeserializeFromStream(Type type, Stream stream)
- {
- using (var reader = new XmlTextReader(stream))
- {
- var netSerializer = GetSerializer(type);
- return netSerializer.Deserialize(reader);
- }
- }
-
- /// <summary>
- /// Serializes to stream.
- /// </summary>
- /// <param name="obj">The obj.</param>
- /// <param name="stream">The stream.</param>
- public void SerializeToStream(object obj, Stream stream)
- {
- using (var writer = new XmlTextWriter(stream, null))
- {
- SerializeToWriter(obj, writer);
- }
- }
-
- /// <summary>
- /// Serializes to file.
- /// </summary>
- /// <param name="obj">The obj.</param>
- /// <param name="file">The file.</param>
- public void SerializeToFile(object obj, string file)
- {
- _logger.Debug("Serializing to file {0}", file);
- using (var stream = new FileStream(file, FileMode.Create))
- {
- SerializeToStream(obj, stream);
- }
- }
-
- /// <summary>
- /// Deserializes from file.
- /// </summary>
- /// <param name="type">The type.</param>
- /// <param name="file">The file.</param>
- /// <returns>System.Object.</returns>
- public object DeserializeFromFile(Type type, string file)
- {
- _logger.Debug("Deserializing file {0}", file);
- using (var stream = _fileSystem.OpenRead(file))
- {
- return DeserializeFromStream(type, stream);
- }
- }
-
- /// <summary>
- /// Deserializes from bytes.
- /// </summary>
- /// <param name="type">The type.</param>
- /// <param name="buffer">The buffer.</param>
- /// <returns>System.Object.</returns>
- public object DeserializeFromBytes(Type type, byte[] buffer)
- {
- using (var stream = new MemoryStream(buffer))
- {
- return DeserializeFromStream(type, stream);
- }
- }
- }
-}