LibXml.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace YG.Lib
  7. {
  8. public class XmlLib
  9. {
  10. private static XmlLib xml = new XmlLib();
  11. public static XmlLib Instance { get { return xml; } }
  12. /// <summary>
  13. /// 保存对象到xml文件中
  14. /// </summary>
  15. /// <typeparam name="T">需要序列化的对象的名称</typeparam>
  16. /// <param name="ob">对象实体</param>
  17. /// <param name="xmlpath">需要保存对象的xml的路径</param>
  18. /// <returns></returns>
  19. public bool XmlSave<T>(object ob, string xmlpath)
  20. {
  21. try
  22. {
  23. System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(T));
  24. System.IO.Stream stream = new System.IO.FileStream(xmlpath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite);
  25. serializer.Serialize(stream, ob);
  26. stream.Close();
  27. return true;
  28. }
  29. catch (Exception e)
  30. {
  31. Log.Instance.WriteLogAdd($"35-->{e.Message}");
  32. return false;
  33. }
  34. }
  35. /// <summary>
  36. /// 打开xml对象
  37. /// </summary>
  38. /// <typeparam name="T">需要转换的对象类型</typeparam>
  39. /// <param name="xmlpath">config路径</param>
  40. /// <returns></returns>
  41. public T XmlOpen<T>(string xmlpath)
  42. {
  43. T t;
  44. try
  45. {
  46. if (System.IO.File.Exists(xmlpath))
  47. {
  48. System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(T));
  49. System.IO.Stream stream = new System.IO.FileStream(xmlpath, System.IO.FileMode.OpenOrCreate);
  50. t = (T)serializer.Deserialize(stream);
  51. stream.Close();
  52. return t;
  53. }
  54. else
  55. {
  56. //需要添加一个提示信息, 或者写入日志的操作
  57. return default(T);
  58. }
  59. }
  60. catch(Exception e)
  61. {
  62. Log.Instance.WriteLogAdd($"67-->{ e.Message}");
  63. return default(T);
  64. }
  65. // return t
  66. }
  67. }
  68. }