C#的StringWriter,XmlSerializer将对象等序列化为Xml字符串
主要方法:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Xml; using System.Xml.Serialization; namespace ConsoleApplication2 { public class SimpleSerializer { /**//// <summary> /// 序列化对象 /// </summary> /// <typeparam name=\"T\">对象类型</typeparam> /// <param name=\"t\">对象</param> /// <returns></returns> public static string Serialize<T>(T t) { using (StringWriter sw = new StringWriter()) { XmlSerializer xz = new XmlSerializer(t.GetType()); xz.Serialize(sw, t); return sw.ToString(); } } /**//// <summary> /// 反序列化为对象 /// </summary> /// <param name=\"type\">对象类型</param> /// <param name=\"s\">对象序列化后的Xml字符串</param> /// <returns></returns> public static object Deserialize(Type type, string s) { using(StringReader sr = new StringReader(s)) { [Page] XmlSerializer xz = new XmlSerializer(type); return xz.Deserialize(sr); } } } } |
定义一个用于测试的实体类:
public class TestClass { public string MyFeild { get; set; } } |
测试:
static void Main(string[] args) { TestClass x = new TestClass(); x.MyFeild = "测试"; using (StringWriter sw = new StringWriter()) { XmlSerializer xz = new XmlSerializer(x.GetType()); xz.Serialize(sw, x); Console.WriteLine(sw.ToString()); using (StringReader sr = new StringReader(sw.ToString())) { Console.Write(((TestClass)xz.Deserialize(sr)).MyFeild); } Console.Read(); } } |
序列化的时候,各个字段还有下面这类属性,下次再写
[XmlElement("MyFeild")] public string MyFeild { get; set; } |

浙公网安备 33010602011771号