using System;
using System.IO;
using System.Xml.Serialization;
using System.Web.Script.Serialization;
using System.Data;
using System.Collections;
using System.Collections.Generic;
namespace YTSoft.Common
{
public static class SerializationHelper
{
///
/// 反序列化
///
/// 对象类型
/// 文件路径
///
public static object Load(Type type, string filename)
{
FileStream fs = null;
try
{
// open the stream...
fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
XmlSerializer serializer = new XmlSerializer(type);
return serializer.Deserialize(fs);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (fs != null)
fs.Close();
}
}
///
/// 序列化
///
/// 对象
/// 文件路径
public static void Save(object obj, string filename)
{
FileStream fs = null;
// serialize it...
try
{
fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
XmlSerializer serializer = new XmlSerializer(obj.GetType());
serializer.Serialize(fs, obj);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (fs != null)
fs.Close();
}
}
///
/// DataTable转Json,[{},{},{}]形式
///
///
///
public static string DataToJson(this DataTable dt)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = new ArrayList();
foreach (DataRow dr in dt.Rows)
{
Dictionary drow = new Dictionary();
foreach (DataColumn dc in dt.Columns)
{
drow.Add(dc.ColumnName, dr[dc.ColumnName]);
}
dic.Add(drow);
}
return jss.Serialize(dic);
}
}
}