diff Stocks/Stocks.Common/Core/FileSerializer.cs @ 0:e5d46bb6cdb0

Initial commit
author adminSH stevenhollidge@hotmail.com
date Mon, 20 Feb 2012 13:52:35 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Stocks/Stocks.Common/Core/FileSerializer.cs	Mon Feb 20 13:52:35 2012 +0700
@@ -0,0 +1,55 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Runtime.Serialization;
+using System.Text;
+using Newtonsoft.Json;
+
+namespace Stocks.Common.Core
+{
+  public class FileSerializer
+  {
+    public void SerializeJson(string filename, object obj)
+    {
+      string json = JsonConvert.SerializeObject(obj);
+      Serialize(filename, json);
+    }
+
+    public void Serialize(string filename, string text)
+    {
+      using (StreamWriter writer = new StreamWriter(filename))
+        { writer.Write(text); }
+    }
+
+    public void Serialize(string filename, IFormatter formatter, object objectToSerialize)
+    {
+      using (Stream stream = File.Open(filename, FileMode.Create))
+        formatter.Serialize(stream, objectToSerialize);
+    }
+
+    public string Deserialize(string filename)
+    { 
+      StringBuilder sb = new StringBuilder();
+      using (StreamReader reader = new StreamReader(filename))
+        if (reader != null)
+          sb.AppendLine(reader.ReadToEnd());
+
+      return sb.ToString();       
+    }
+
+    public List<T> DeserializeJson<T>(string filename)
+    {
+      var json = Deserialize(filename);
+      return JsonConvert.DeserializeObject<List<T>>(json);
+    }
+
+    public T[] Deserialize<T>(string filename, IFormatter formatter, Type type)
+    {
+      using (Stream stream = File.Open(filename, FileMode.Open))
+      {
+        var items = (T[])formatter.Deserialize(stream);
+        return items;
+      }
+    }
+  }
+}