| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- 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 HySoft.Common
- {
- public static class SerializationHelper
- {
- /// <summary>
- /// 反序列化
- /// </summary>
- /// <param name="type">对象类型</param>
- /// <param name="filename">文件路径</param>
- /// <returns></returns>
- 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();
- }
- }
- /// <summary>
- /// 序列化
- /// </summary>
- /// <param name="obj">对象</param>
- /// <param name="filename">文件路径</param>
- 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();
- }
- }
- /// <summary>
- /// DataTable转Json,[{},{},{}]形式
- /// </summary>
- /// <param name="dt"></param>
- /// <returns></returns>
- public static string DataToJson(this DataTable dt)
- {
- JavaScriptSerializer jss = new JavaScriptSerializer();
- ArrayList dic = new ArrayList();
- foreach (DataRow dr in dt.Rows)
- {
- Dictionary<string, object> drow = new Dictionary<string, object>();
- foreach (DataColumn dc in dt.Columns)
- {
- drow.Add(dc.ColumnName, dr[dc.ColumnName]);
- }
- dic.Add(drow);
- }
- return jss.Serialize(dic);
- }
- }
- }
|