XmlSerialize.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.IO;
  3. using System.Xml.Serialization;
  4. namespace NXWMS.Code.Serialize
  5. {
  6. /// <summary>
  7. /// Xml序列化与反序列化
  8. /// </summary>
  9. public static class XmlSerialize
  10. {
  11. #region 反序列化
  12. /// <summary>
  13. /// 反序列化
  14. /// </summary>
  15. /// <param name="type">类型</param>
  16. /// <param name="xml">XML字符串</param>
  17. /// <returns></returns>
  18. public static object Deserialize(Type type, string xml)
  19. {
  20. using (StringReader sr = new StringReader(xml))
  21. {
  22. XmlSerializer xmldes = new XmlSerializer(type);
  23. return xmldes.Deserialize(sr);
  24. }
  25. }
  26. /// <summary>
  27. /// 反序列化
  28. /// </summary>
  29. /// <param name="type"></param>
  30. /// <param name="xml"></param>
  31. /// <returns></returns>
  32. public static object Deserialize(Type type, Stream stream)
  33. {
  34. XmlSerializer xmldes = new XmlSerializer(type);
  35. return xmldes.Deserialize(stream);
  36. }
  37. #endregion
  38. #region 序列化
  39. /// <summary>
  40. /// 序列化
  41. /// </summary>
  42. /// <param name="type">类型</param>
  43. /// <param name="obj">对象</param>
  44. /// <returns></returns>
  45. public static string Serializer(Type type, object obj)
  46. {
  47. MemoryStream Stream = new MemoryStream();
  48. XmlSerializer xml = new XmlSerializer(type);
  49. //序列化对象
  50. xml.Serialize(Stream, obj);
  51. Stream.Position = 0;
  52. StreamReader sr = new StreamReader(Stream);
  53. string str = sr.ReadToEnd();
  54. sr.Dispose();
  55. Stream.Dispose();
  56. return str;
  57. }
  58. #endregion
  59. }
  60. }