五维思考

学习要加,骄傲要减,机会要乘,懒惰要除。 http://www.5dthink.cn

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
</pre><pre code_snippet_id="613717" snippet_file_name="blog_20150307_1_5795040" name="code" class="csharp">
/// <summary> 
/// 持久化对象为XML文件 
/// </summary> 
public class MyXmlSerializer
{
   
   /// <summary> 
   /// 序列化对象 
   /// </summary> 
   /// <param name="o">对象</param> 
   /// <param name="outFile">持久化对象文件</param> 
   /// <returns></returns> 
   public static bool Serialize(object o, string outFile)
   {
      using (StringWriter sw = new StringWriter())
      {
         XmlSerializer xz = new XmlSerializer(o.GetType());
         xz.Serialize(sw, o);
         File.WriteAllText(outFile, sw.ToString(), Encoding.UTF8);
      }
      
      return true;
   }
   
   /// <summary> 
   /// 反序列化为对象 
   /// </summary> 
   /// <param name="type">对象类型</param> 
   /// <param name="s">持久化对象文件</param> 
   /// <returns></returns> 
   public static object Deserialize(Type type, string file)
   {
      string content = File.ReadAllText(file);
      
      using (StringReader sr = new StringReader(content))
      {
         XmlSerializer xz = new XmlSerializer(type);
         return xz.Deserialize(sr);
      }
      
   }
}

使用方法:

/// <summary> 
/// 获取历史记录, 反序列化 
/// </summary> 
/// <returns></returns> 
public static VersionHistory GetVersionHistory()
{
   string versionFile = Application.StartupPath XML_FILE;
   if (File.Exists(versionFile))
   {
      object o = MyXmlSerializer.Deserialize(typeof(VersionHistory), versionFile);
      return o as VersionHistory;
   }
   else
   return new VersionHistory();
}

/// <summary> 
/// 保存历史记录,序列化 
/// </summary> 
public void Save()
{
   string versionFile = Application.StartupPath XML_FILE;
   MyXmlSerializer.Serialize(this, versionFile);
}


posted on 2015-03-07 10:32  五维思考  阅读(268)  评论(0编辑  收藏  举报

QQ群:1. 全栈码农【346906288】2. VBA/VSTO【2660245】