C# Asp.net中xml串与对象互相转换
public class XmlUtil { #region 反序列化 /// <summary> /// 将XML字符串反序列化为对象 /// </summary> /// <param name="type">类型</param> /// <param name="xml">XML字符串</param> /// <returns></returns> public static object Xml2Obj(Type type, string xml) { try { using (StringReader sr = new StringReader(xml)) { XmlSerializer xmldes = new XmlSerializer(type); return xmldes.Deserialize(sr); } } catch (Exception e) { return null; } } #endregion #region 对象转化成 /// <summary> /// 对象转化成XML /// </summary> /// <param name="type">类型</param> /// <param name="obj">对象</param> /// <returns></returns> public static string Obj2Xml(Type type, object obj) { MemoryStream Stream = new MemoryStream(); XmlSerializer xml = new XmlSerializer(type); try { //序列化对象 xml.Serialize(Stream, obj); } catch (InvalidOperationException) { throw; } Stream.Position = 0; StreamReader sr = new StreamReader(Stream); string str = sr.ReadToEnd(); sr.Dispose(); Stream.Dispose(); return str; } #endregion }
对象类:
[XmlRoot("people")]
public class People
{
public string name { get; set; }
public string age { get; set; }
}
public class People
{
public string name { get; set; }
public string age { get; set; }
}
xml串:
<people>
<name>LiMing</name>
<age>25</age>
</people>
var people = (People)XmlUtil.Xml2Obj(typeof(People), xmlStr);