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


  • 相关阅读:
    wrap,wrapall,wrapinner的区别:
    jqueryappend和appendTo的区别
    《Nagios系统监控实践》一书出版
    基于Python的密码生成程序的优化
    Puppet学习:pp文件权限问题
    依然看不清
    免费编程中文书籍索引
    Linux批量修改指定目录下的文件或文件夹权限
    puppet学习:文件夹权限的问题
    Zabbix探索:Zabbix API使用时的错误1
  • 原文地址:https://www.cnblogs.com/zhaoshujie/p/9594773.html
Copyright © 2011-2022 走看看