这几天项目中用到XML序列化,于是去查看相关资料发觉介绍中全部是使用了XML文件进行交互,可项目需要的是字符串交互,怎么办?那是否可以采用类似内存文件方式进行呢,经过查找发觉MemoryStream可以使用,代码如下:
- public class MyObjectXml
- {
- #region Serialize
- /// <summary>
- ///
- /// </summary>
- /// <param name="obj"></param>
- /// <returns></returns>
- public string Serialize(MyObject obj)
- {
- MemoryStream ms = new MemoryStream();
- XmlTextWriter xmlWriter = new XmlTextWriter(ms, Encoding.UTF8);
- xmlWriter.Indentation = 4;
- xmlWriter.Formatting = Formatting.Indented;
- XmlSerializer formatter = new XmlSerializer(typeof(MyObject));
- formatter.Serialize(xmlWriter, obj);
- xmlWriter.Close();
- string xmlstring = Encoding.UTF8.GetString(ms.ToArray());
- return xmlstring;
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="xmlstring"></param>
- /// <returns></returns>
- public MyObject DeSerialize(string xmlstring)
- {
- byte[] buffer = Encoding.UTF8.GetBytes(xmlstring);
- MemoryStream ms = new MemoryStream(buffer);
- XmlTextReader xmlReader = new XmlTextReader(ms);
- XmlSerializer formatter = new XmlSerializer(typeof(MyObject));
- MyObject obj = (MyObject)formatter.Deserialize(xmlReader);
- xmlReader.Close();
- return obj;
- }
- #endregion
- }