當前位置:編程學習大全網 - 源碼下載 - 壹個可序列化的C#對象,如何轉成壹個XML格式的文件或字符串

壹個可序列化的C#對象,如何轉成壹個XML格式的文件或字符串

序列化或反序列化成壹個字符串:方法壹:序列化:public static string XMLSerialize<T(T entity){StringBuilder buffer = new StringBuilder();XmlSerializer serializer = new XmlSerializer(typeof(T));using (TextWriter writer = new StringWriter(buffer)){serializer.Serialize(writer, entity);}return buffer.ToString();}反序列化:public static T DeXMLSerialize<T(string xmlString){T cloneObject = default(T);StringBuilder buffer = new StringBuilder();buffer.Append(xmlString);XmlSerializer serializer = new XmlSerializer(typeof(T));using (TextReader reader = new StringReader(buffer.ToString())){Object obj = serializer.Deserialize(reader);cloneObject = (T)obj;}return cloneObject;}方法二:/// <summary/// 對象序列化成 XML String/// </summarypublic static string XmlSerialize<T(T obj){string xmlString = string.Empty;XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));using (MemoryStream ms = new MemoryStream()){xmlSerializer.Serialize(ms, obj);xmlString = Encoding.UTF8.GetString(ms.ToArray());}return xmlString;}/// <summary/// XML String 反序列化成對象/// </summarypublic static T XmlDeserialize<T(string xmlString){T t = default(T);XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));using (Stream xmlStream = new MemoryStream(Encoding.UTF8.GetBytes(xmlString))){using (XmlReader xmlReader = XmlReader.Create(xmlStream)){Object obj = xmlSerializer.Deserialize(xmlReader);t = (T)obj;}}return t;}如果要序列化到壹個文件,則使用FileStream就可以了如:string strFile = @c:/book.xml;using (FileStream fs = new FileStream(strFile, FileMode.Create)){XmlSerializer formatter = new XmlSerializer(typeof(T));formatter.Serialize(fs, entity);}附:其實還可以直接用SringWriterStringBuilder sb = new StringBuilder();System.IO.StringWriter writer = new System.IO.StringWriter(sb);

  • 上一篇:ps是什麽東東啊?怎麽用啊?
  • 下一篇:C++test的主要特性
  • copyright 2024編程學習大全網