zoukankan      html  css  js  c++  java
  • C#.Net 持久化对象为XML文件

    </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);
    }


  • 相关阅读:
    可左右拖动窗口demo
    制作一个简单的百度网盘在线视频加速的chrome插件
    git分支
    使用git的ssh
    git的概念和常用命令
    爬虫:获取页面 -- request库的使用
    字符串方法
    从实现原理更深入了解call和apply
    Git和GitHub使用
    localStorage和sessionStorage
  • 原文地址:https://www.cnblogs.com/zhaoshujie/p/9594773.html
Copyright © 2011-2022 走看看