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


相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-27
  • 2021-05-22
  • 2022-12-23
  • 2021-06-06
猜你喜欢
  • 2021-05-15
  • 2022-01-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-18
相关资源
相似解决方案