Advertisement
lu4kedr

serializer_xml

Dec 19th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.53 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Xml.Serialization;
  4.  
  5. namespace Vis_Lib.Database
  6. {
  7.     public static class XmlSerializer<T>
  8.     {
  9.         #region Public Fields
  10.  
  11.         public static Type _type = typeof(T);
  12.  
  13.         #endregion Public Fields
  14.  
  15.         #region Private Methods
  16.  
  17.         private static T Deserialize(string filePath)
  18.         {
  19.             T XMLOBJ;
  20.             var serializer = new XmlSerializer(_type);
  21.             using (var stream = File.OpenRead(filePath))
  22.             {
  23.                 XMLOBJ = (T)serializer.Deserialize(stream);
  24.             }
  25.             return XMLOBJ;
  26.         }
  27.  
  28.         #endregion Private Methods
  29.  
  30.         #region Public Methods
  31.  
  32.         public static void Load(string filePath, out T obj)
  33.         {
  34.             if (File.Exists(filePath))
  35.             {
  36.                 obj = Deserialize(filePath);
  37.                 return;
  38.             }
  39.             obj = default(T);
  40.         }
  41.  
  42.         public static void Save(string filePath, object obj)
  43.         {
  44.             try
  45.             {
  46.                 if (File.Exists(filePath))
  47.                     File.Delete(filePath);
  48.                 var serializer = new XmlSerializer(_type);
  49.                 using (var stream = File.Open(filePath, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.None))
  50.                 {
  51.                     serializer.Serialize(stream, obj);
  52.                 }
  53.             }
  54.             catch (Exception ex) { Console.WriteLine(ex.Message); }
  55.         }
  56.  
  57.         #endregion Public Methods
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement