[blam] ItemStore: Add deserialization code



commit 2b76d465e7b53e9c724e5f134960004f42594249
Author: Carlos Martín Nieto <carlos cmartin tk>
Date:   Wed Sep 15 05:05:30 2010 +0100

    ItemStore: Add deserialization code

 src/ItemStore.cs |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)
---
diff --git a/src/ItemStore.cs b/src/ItemStore.cs
index 3955414..2a487f9 100644
--- a/src/ItemStore.cs
+++ b/src/ItemStore.cs
@@ -1,6 +1,8 @@
 using System;
 using System.Collections;
 using System.ServiceModel.Syndication;
+using System.Xml;
+using System.Xml.Serialization;
 
 namespace Imendio.Blam
 {
@@ -8,6 +10,14 @@ namespace Imendio.Blam
     {
         Hashtable items;
         ItemStore instance = null;
+        static XmlSerializer serializer = new XmlSerializer(typeof(ItemStore));
+
+        [XmlElement("Item", typeof(Item))]
+        public Hashtable Items {
+            get {
+                return items;
+            }
+        }
 
         void Add(SyndicationItem item)
         {
@@ -17,12 +27,18 @@ namespace Imendio.Blam
         public ItemStore GetInstance()
         {
             if(instance == null){
-                instance = new ItemStore();
+                Load(Defines.APP_HOMEDIR + "/" + Defines.APP_ITEMSTORE_FILE);
             }
 
             return instance;
         }
 
+        private void Load(string filename)
+        {
+            XmlTextReader reader = new XmlTextReader(filename);
+            instance = serializer.Deserialize(reader) as ItemStore;
+        }
+
        private ItemStore ()
        {
             items = new Hashtable();



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]