利用泛型实现XML的序列化与反序列化。
/// <summary> /// 将一个对象序列化为string /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="o">待序列化的对象</param> /// <returns>序列化后的字符串</returns> public static string ToXmlString<T>(T o) { XmlSerializer xs = new XmlSerializer(typeof(T)); XmlSerializerNamespaces xmlns = new XmlSerializerNamespaces(); xmlns.Add(String.Empty, String.Empty); string result = string.Empty; using (StringWriter sw = new StringWriter()) { xs.Serialize(sw, o, xmlns); result = sw.ToString(); } return result; }
/// <summary> /// 将string反序列化为一个对象 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="xmlString">待反序列化的字符串</param> /// <returns>反序列化后的对象</returns> public static T FromXmlString<T>(string xmlString) where T : class { T result = default(T); if (string.IsNullOrWhiteSpace(xmlString)) { return result; } XmlSerializer xs = new XmlSerializer(typeof(T)); using (StringReader sr = new StringReader(xmlString)) { result = xs.Deserialize(sr) as T; } return result; }
新闻热点
疑难解答