ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/xmltv_parser/trunk/libxmltv/Core/XMLTVSerializer.cs
Revision: 50
Committed: Fri Mar 8 06:15:44 2013 UTC (10 years, 6 months ago) by william
File size: 1826 byte(s)
Log Message:

File Contents

# User Rev Content
1 william 49 using System;
2     using System.Collections.Generic;
3     using System.Linq;
4     using System.Text;
5     using System.IO;
6     using libxmltv.Interfaces;
7     using Enterprise.Logging;
8     using System.Runtime.Serialization.Formatters.Binary;
9     using System.Windows.Forms;
10    
11     namespace libxmltv.Core
12     {
13     public class XMLTVSerializer<T> : IXMLTVSerializer<T>
14     {
15     private T data;
16     public XMLTVSerializer(T Data) { data = Data; }
17     #region IXMLTVSerializer<T> members
18     public bool Serialize(string file)
19     {
20     bool retVal = false;
21     using (Stream stream = File.Open(file, FileMode.Create)) { retVal = Serialize(stream); }
22     return retVal;
23     }
24     public bool Serialize(Stream stream)
25     {
26     try
27     {
28     BinaryFormatter bin = new BinaryFormatter();
29     bin.Serialize(stream, data);
30     }
31     catch (Exception ex) { xmltv_logger.Log.Error.WriteLine(ex.ToString()); return false; }
32     return true;
33     }
34 william 50 public T DeSerialize(string file, out bool status)
35 william 49 {
36 william 50 T unpacked_data = default(T);
37     using (Stream stream = File.Open(file, FileMode.Open)) { unpacked_data = DeSerialize(stream, out status); }
38     return unpacked_data;
39 william 49 }
40 william 50 public T DeSerialize(Stream stream, out bool status)
41 william 49 {
42 william 50 T unpacked_data = default(T);
43 william 49 try
44     {
45     BinaryFormatter bin = new BinaryFormatter();
46     unpacked_data = (T)bin.Deserialize(stream);
47     }
48 william 50 catch (Exception ex) { xmltv_logger.Log.Error.WriteLine(ex.ToString()); status = false; }
49     status = true;
50     return unpacked_data;
51 william 49 }
52     #endregion
53     }
54     }