C#.Net 持久化对象为XML文件

来源:互联网 发布:淘宝客源码7.0破解版 编辑:程序博客网 时间:2024/06/04 00:31
</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);}


0 0
原创粉丝点击