C#.Net 持久化对象为XML文件
作者:C/S框架网  发布日期:2011/08/14 16:05:47
C#.Net 持久化对象为XML文件



MyXmlSerializer.cs 文件内容:

C# Code:

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


//来源:C/S框架网(www.csframework.com) QQ:1980854898


使用方法:

C# Code:

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

//来源:C/S框架网(www.csframework.com) QQ:1980854898


上一篇 下一篇